Welcome guest. Before posting on our computer help forum, you must register. Click here it's easy and free.

Author Topic: want to download my game to windows 7 pcs  (Read 2916 times)

0 Members and 1 Guest are viewing this topic.

yshua

  • Guest
want to download my game to windows 7 pcs
« on: August 09, 2010, 11:01:48 PM »
Dear forum people,

      Have a lot of basic info, including an application executable manifest, but just need an overview of what to do to start a download when my URL is clicked on the internet.   Maybe just a pointer in the right direction if that's too much all at once....
 
 Thank you very much,
Yshua C.

Mulreay

  • Guest
Re: want to download my game to windows 7 pcs
« Reply #1 on: August 10, 2010, 09:39:14 PM »
I will try to understand your query with the limited info supplied.

      Have a lot of basic info,

And what is this info?

including an application executable manifest, but just need an overview of what to do to start a download when my URL is clicked on the internet.
 
are you suggesting that if somebody click on a simple URL it will download something from you?

Maybe just a pointer in the right direction if that's too much all at once....
 
 Thank you very much,
Yshua C.

No nothing that is 'too' much. Why would you need people to download straight off a URL can they not see a description or have an understanding of what they are downloading? Surely downloads should be as clear as day and not hide anything?


BC_Programmer


    Mastermind
  • Typing is no substitute for thinking.
  • Thanked: 1140
    • Yes
    • Yes
    • BC-Programming.com
  • Certifications: List
  • Computer: Specs
  • Experience: Beginner
  • OS: Windows 11
Re: want to download my game to windows 7 pcs
« Reply #2 on: August 10, 2010, 09:46:50 PM »
but just need an overview of what to do to start a download when my URL is clicked on the internet.   

Make the URL point to a file, first off.

Or, if you are using PHP, you can change the output header. This is the function I use for this:

Code: (php) [Select]
function output_file($file, $name, $mime_type='')
{
 /*
 This function takes a path to a file to output ($file),
 the filename that the browser will see ($name) and
 the MIME type of the file ($mime_type, optional).
 
 If you want to do something on download abort/finish,
 register_shutdown_function('function_name');
 */
 if(!is_readable($file)) die('File not found or inaccessible!' . $file);
 
 $size = filesize($file);
 $name = rawurldecode($name);
 
 /* Figure out the MIME type (if not specified) */
 $known_mime_types=array(
  "pdf" => "application/pdf",
  "txt" => "text/plain",
  "html" => "text/html",
  "htm" => "text/html",
"exe" => "application/octet-stream",
"zip" => "application/zip",
"doc" => "application/msword",
"xls" => "application/vnd.ms-excel",
"ppt" => "application/vnd.ms-powerpoint",
"gif" => "image/gif",
"png" => "image/png",
"jpeg"=> "image/jpg",
"jpg" =>  "image/jpg",
"php" => "text/plain"
 );
 
 if($mime_type==''){
$file_extension = strtolower(substr(strrchr($file,"."),1));
if(array_key_exists($file_extension, $known_mime_types)){
$mime_type=$known_mime_types[$file_extension];
} else {
$mime_type="application/force-download";
};
 };
 
 @ob_end_clean(); //turn off output buffering to decrease cpu usage
 
 // required for IE, otherwise Content-Disposition may be ignored
 if(ini_get('zlib.output_compression'))
  ini_set('zlib.output_compression', 'Off');
 
 header('Content-Type: ' . $mime_type);
 header('Content-Disposition: attachment; filename="'.$name.'"');
 header("Content-Transfer-Encoding: binary");
 header('Accept-Ranges: bytes');
 
 /* The three lines below basically make the
    download non-cacheable */
 header("Cache-control: private");
 header('Pragma: private');
 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
 
 // multipart-download and download resuming support
 if(isset($_SERVER['HTTP_RANGE']))
 {
list($a, $range) = explode("=",$_SERVER['HTTP_RANGE'],2);
list($range) = explode(",",$range,2);
list($range, $range_end) = explode("-", $range);
$range=intval($range);
if(!$range_end) {
$range_end=$size-1;
} else {
$range_end=intval($range_end);
}
 
$new_length = $range_end-$range+1;
header("HTTP/1.1 206 Partial Content");
header("Content-Length: $new_length");
header("Content-Range: bytes $range-$range_end/$size");
 } else {
$new_length=$size;
header("Content-Length: ".$size);
 }
 
 /* output the file itself */
 $chunksize = 1*(1024*1024); //you may want to change this
 $bytes_send = 0;
 if ($file = fopen($file, 'r'))
 {
if(isset($_SERVER['HTTP_RANGE']))
fseek($file, $range);
 
while(!feof($file) &&
(!connection_aborted()) &&
($bytes_send<$new_length)
      )
{
$buffer = fread($file, $chunksize);
print($buffer); //echo($buffer); // is also possible
flush();
$bytes_send += strlen($buffer);
}
 fclose($file);
 } else die('Error - can not open file.');
 
die();
}
 
/*********************************************
Example of use
**********************************************/
 
/*
Make sure script execution doesn't time out.
Set maximum execution time in seconds (0 means no limit).
set_time_limit(0);
$file_path='that_one_file.txt';
output_file($file_path, 'some file.txt', 'text/plain');
*/

Then you can cause the PHP to give back a "download" rather then an actual web page- the browser will prompt to download it.

If you are not using PHP or another Server Side Script, then you will almost certainly need to have the URL be complete and point to the file you want to be downloaded.
I was trying to dereference Null Pointers before it was cool.