Для подсчета количества скачиваний файлов приходится отдавать файлы через readfile. До недавнего времени все работало как часы (что может быть проще?). Однако с недавних пор при скачивании стали отдаваться битые файлы (скачиваются первые несколько килобайт файла, как правило 7-10). В чем причина, непонятно.
Код для отдачи файла выглядит так:
$fileOriginal = "{$path}/{$file->hash}";
set_time_limit(0);
if (ob_get_level()) {
ob_end_clean();
}
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $file->filename . '"' );
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Accept-Ranges: bytes');
header('Content-Length: ' . filesize($fileOriginal));
readfile($fileOriginal);
return;
На сервере стоит Ubuntu, связка nginx+php-fpm.
В чем может быть причина?