Re: Serving a .dmg via readfile?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/25/12 10:54 PM, Brian Dunning wrote:
Hey all - I'm having no luck serving a .dmg from my online store. I stripped down the code to just the following to debug, but no matter what I get a zero-byte file served:

   header('Content-Type: application/x-apple-diskimage');   // also tried octet-stream
   header('Content-Disposition: attachment; filename="My Cool Image.dmg"');
   $size = filesize('/var/www/mypath/My Cool Image.dmg');
   header('Content-Length: '.$size);
   readfile('/var/www/mypath/My Cool Image.dmg');

This same code works for a number of other file types that I serve: bin, zip, pdf. Any suggestions? Professor Google is not my friend.

Most likely your file is larger than the memory you have available to PHP. The readfile() command will load the whole file into memory before streaming it out.

You'll want to use fopen, fread, fwrite, and fclose to loop through bytes in your file as you shuttle chunks to the client instead of slooping it all into memory in one hunk.

-- Dante

D. Dante Lorenso
dante@xxxxxxxxxxx

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux