Многие пользователи моего сайта сообщают о проблемах при загрузке большого файла (80 МБ).Я использую принудительную загрузку с использованием заголовков.Я могу предоставить дополнительные настройки PHP при необходимости.Я использую фреймворк CakePHP, но весь этот код - обычный php.Я использую php 5.2 с apache на выделенном виртуальном сервере из медиа храма, CentOS Linux.Видите ли вы какие-либо проблемы со следующим кодом:
set_time_limit(1500);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"" . basename($file_path) . "\"");
header("Content-Length: ".$content_length);
header("Content-Transfer-Encoding: binary");
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private', false);
header('Pragma: public');
header('Expires: 0');
//Change this part
$handle = fopen($file_path, 'rb');
while (!feof($handle))
{
echo fread($handle, 4096);
ob_flush();
flush();
}
fclose($handle);
exit;
По существу, сообщаемая проблема заключается в том, что загрузка начинается, а затем останавливается в середине.Я думал, что это проблема с ограничением по времени, поэтому я добавил код set_time_limit.Раньше я использовал функцию php readfile, но она также не работала гладко.