You are here: Large File Not Being Sent To Client « PHP Programming Language « IT news, forums, messages
Large File Not Being Sent To Client

Posted by John C. Frickson on 03/09/07 16:28

My company produces reports for our customers in PDF format. I have a
php script that verifies login status and access rights, and sends
the pdf to the client using readfile().

This has worked fine until recently. One of our customers' reports
is 10.6MB, and the customer never receives it and I can't get it
either. I checked the Apache access_log, and it shows varying
amounts of bytes being sent, but always close to 10MB.

I tried changing the php script to do fopen(), fread(), echo,
ob_flush() and flush(). After each flush, I write a message to a log
file. The messages in the log file stop at 10MB, as if the php script
is hung.

Using a network monitor, I see the connection being established, the
HTTP GET being sent, but no content coming back.

PHP version is 5.1.2
Apache is 2.2.3
OS is SuSE Linux Enterprise Server 10.0 - 64bit

Current test version looks like this:

ini_set("output_buffering", "0");
ini_set("implicit_flush", "1");
ini_set("memory_limit", "100M");
ini_set("max_execution_time", "600");
$lth = 0;
$in = fopen($path, "r");
while (!feof($in)) {
$data = fread($in, 8192);
$lth += strlen($data);
$errLog->WriteLog("Read $lth bytes" , "debug.txt");
echo $data;
$errLog->WriteLog("After echo" , "debug.txt");
ob_flush();
$errLog->WriteLog("After ob_flush" , "debug.txt");
flush();
$errLog->WriteLog("After flush" , "debug.txt");
}
$errLog->WriteLog("Got EOF", "debug.txt");
fclose($in);
$errLog->WriteLog("End of Script - read $lth bytes", "debug.txt");


The last five lines of the debug.txt log file say:

Read 10223616 bytes
After echo
After ob_flush
After flush
Read 10231808 bytes
After echo

So it's never returning from the ob_flush() call. Time from first
log entry to last is about 1 second.

Any ideas?
John

 

Navigation:

[Reply to this 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

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