Reply to Re: [PHP] Re: PHP 5 limits "readfile" to 1.9 MB?

Your name:

Reply:


Posted by Catalin Trifu on 08/17/05 22:36

I know there was ! No one said it was intentional !

Catalin


Rory Browne wrote:
> Just for your information there was a topic on this a few months ago.
>
> It definately wasn't intentional - Rasmus didn't know about it until then.
>
> On 8/17/05, Jordan Miller <jmil@hymiegladstone.com> wrote:
>
>>turns out it's a known bug, fixed in CVS already... haven't tried the
>>PHP 5.1 beta release yet.
>>
>>http://bugs.php.net/bug.php?id=32970
>>
>>
>>
>>On Aug 17, 2005, at 10:19 AM, Catalin Trifu wrote:
>>
>>
>>> Hi,
>>>
>>> Indeed a fclose($fp) is needed (wrote it as an example :)).
>>> 1MB is more than enough as a buffer. If you have a 53MB file,
>>>what will happen then ?
>>> I have no idea if it's a bug or a feature. Either way I did lose
>>>some hair over this when I switched from PHP4 to PHP5.
>>>
>>>Catalin
>>>
>>>
>>>Jordan Miller wrote:
>>>
>>>
>>>>Catalin,
>>>>Wow, that worked great, thanks.
>>>>I'm curious why you set a static buffer of 1024768... why not just
>>>>do filesize($file), as shown at http://www.php.net/fread ? Is it
>>>>better for memory usage to have a potentially smaller buffer?
>>>>Also, you may want an fclose($fp) after the file has been
>>>>downloaded.
>>>>So is this a bug in PHP 5 or are they just purposely limiting the
>>>>abilities of the "readfile" command?
>>>>Jordan
>>>>On Aug 17, 2005, at 3:36 AM, Catalin Trifu wrote:
>>>>
>>>>
>>>>> Hi,
>>>>>
>>>>> I've had a similar problem. The download always stopped at
>>>>>exactly 2.000.000 bytes.
>>>>> You have to work around that with:
>>>>> $fp = fopen($file, 'r');
>>>>> if($fp) {
>>>>> while(!feof($fp)) {
>>>>> echo fread($fp, 1024768);//see the huge buffer to read into
>>>>> }
>>>>> } else {
>>>>> //whatever error handler
>>>>> }
>>>>>
>>>>>Catalin
>>>>>
>>>>>
>>>>>Jordan Miller wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>Hello all,
>>>>>>I am new to this list and I have searched the archives to no
>>>>>>avail. I am having a peculiar problem when upgrading to PHP 5:
>>>>>>My downloads are now limited to the first 1.9 MB of the file
>>>>>>in question, with the download either terminating at 1.9 MB
>>>>>>or seemingly continuously stuck in a downloading process at
>>>>>>1.9 MB. The code in the PHP script has not changed and all
>>>>>>parameters that I could find that are relevant to this problem
>>>>>>are given below:
>>>>>>the minimal code needed for download:
>>>>>> // $file_to_read is the complete path of the file to
>>>>>>download
>>>>>> header("Content-Type: application/pdf");
>>>>>> header( "Content-Disposition: inline; filename=
>>>>>>\"$filename \"");
>>>>>> $len = filesize($file_to_read);
>>>>>> header("Content-Length: $len");
>>>>>> @readfile($file_to_read);
>>>>>>php.ini file for both php version 4 and 5 contain the
>>>>>>following settings that may be relevant:
>>>>>>allow_url_fopen = On
>>>>>>max_execution_time = 300 ; Maximum execution time of each
>>>>>>script, in seconds
>>>>>>max_input_time = 300 ; Maximum amount of time each script
>>>>>>may spend parsing request data
>>>>>>memory_limit = 8M ; Maximum amount of memory a script may
>>>>>>consume (8MB)
>>>>>>post_max_size = 200M
>>>>>>upload_max_filesize = 200M
>>>>>>Some additional details:
>>>>>>All files less than 1.9 MB download fine
>>>>>>It is not a corrupted file, because all files larger than 1.9
>>>>>>MB fail after 1.9 MB
>>>>>>The connection is not timing out (download of 1.9 MB takes only
>>>>>>~15 sec)
>>>>>>Mac OS X 10.3.9 with Marc Liyanage's PHP 5.0.4
>>>>>>Fails for both Safari and Firefox
>>>>>>Fails regardless of "inline" or "attachment"
>>>>>>Fails regardless of "pdf" or "ppt" content-type
>>>>>>This PHP code ALWAYS works for Marc Liyanage's PHP 4.3.4 with
>>>>>>the same settings, above
>>>>>>What am I doing wrong??? Any other parameter in php.ini I
>>>>>>should have set? Any suggestions are much appreciated.
>>>>>>thanks,
>>>>>>Jordan
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>--
>>>>>PHP General Mailing List (http://www.php.net/)
>>>>>To unsubscribe, visit: http://www.php.net/unsub.php
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>
>>>--
>>>PHP General Mailing List (http://www.php.net/)
>>>To unsubscribe, visit: http://www.php.net/unsub.php
>>>
>>>
>>>
>>>
>>
>>--
>>PHP General Mailing List (http://www.php.net/)
>>To unsubscribe, visit: http://www.php.net/unsub.php
>>
>>

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация