if the problem is due to flow control issues between the script and the
httpd server then perhaps changing the approach could help.
i quit using this approach of writing files to the php output buffer a
little while ago. it seemed that it was better to leave the flow control
issues entirely to apache. so i wrote the file to a specific directory on
the server and redirected the client to it, using the apache directive on
that directory:
Header set Content-Disposition attachment
you can use that directive to send whatever headers you need.
On 6/5/09 3:52 PM, "Nitsan Bin-Nun" <[email protected]> wrote:
> Hi List,
>
> I'm using the following code to output a file to the browser. Each file size
> is in the range of 5-10MB, all of them are MP3.
>
> header("Pragma: public");
>> header("Expires: 0");
>> header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
>> header("Cache-Control: public");
>> header("Content-Description: File Transfer");
>> header("Content-Type: {$info['mimetype']}");
>> header("Content-Disposition: attachment;
>> filename=\"{$info['filename']}\"");
>> header("Content-Transfer-Encoding: binary");
>> header("Content-Length: " . $info['size']);
>>
>> set_time_limit(0);
>>
>> $file =
>> @fopen($config['storage'][$config['current_storage']].$info['md5'].".".$info[
>> 'extension'],"rb");
>> if ($file) {
>> while(!feof($file)) {
>> print(fread($file, 1024*8));
>> flush();
>> if (connection_status()!=0) {
>> @fclose($file);
>> die();
>> }
>> }
>> @fclose($file);
>> }
>
>
>
> I'm running this script on a VPS which has a 10MBIT connection. When I
> posted a link to this download stream php file about 50 users started
> download it, then the script stopped from sending the whole file (for
> instance, the file is 5MB, the script sends 2MB, 1MB and it continue this
> way).
>
> In the apache log file I have seen these lines, but I have no idea what are
> their meaning:
>
> [Fri Jun 05 22:02:28 2009] [error] (12)Cannot allocate memory: fork: Unable
>> to fork new process
>> [Fri Jun 05 22:02:38 2009] [error] (12)Cannot allocate memory: fork: Unable
>> to fork new process
>> [Fri Jun 05 22:02:48 2009] [error] (12)Cannot allocate memory: fork: Unable
>> to fork new process
>> [Fri Jun 05 22:11:35 2009] [error] (12)Cannot allocate memory: fork: Unable
>> to fork new process
>>
>
>
> I have no idea what's going on. Any ideas to solve this issue will be very
> appreciated. My 12K users are suffering right now, I would really really
> appreciate any idea in the right direction :) :) :)
>
> Thank you!
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php