hi all,

i have successfully created a download script to force a user to
download, however attempting to download large files causes an error
saying that the file cannot be found.

my code >
  header("Cache-control: private");
  header("Content-Type: application/force-download; name=\"$file\"");
  header("Content-Disposition: attachment; filename=\"$file \"");
  header("Content-Transfer-Encoding: binary");
  header("Content-Length: $content_length");
  $fp = fopen($file_fullpath,"r");
  fpassthru($fp);
  fclose($fp);
< my code

this is a memory issue in the php.ini i.e. memory_limit = 8M then the
largest file i can download is 8M

is there anyway to "force" a download without having to use the system
hungry fpassthru function?

this is driving me nuts so any help would be greatly appreciated

cheers
christian

ps i read the following at php.net fpassthru man page but could not make
sense of it (it appears to be some kind of solution) >

"fpassthru() works best for small files. In download manager scripts,
it's best to determine the URL of the file to download (you may generate
it locally in your session data if you need so), and then use HTTP
__temporary__ redirects (302 status code, with a "Location:" header
specifying the effective download URL).
This saves your web server from maintaining PHP scripts running for long
times during the file downloadn and instead the download will be managed
directly by the web server without scripting support (consequence: less
memory resources used by parallel downloads)..."

Reply via email to