Re: Re: PHP 5 limits "readfile" to 1.9 MB?

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

 



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@xxxxxxxxxxxxxxxxxx> 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
> 
>

-- 
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