вот мой код:
ob_start();
$mm_type="application/octet-stream";
$file = '../uploads/files/' . $filename;
header("Cache-Control: public, must-revalidate");
header("Pragma: no-cache");
header("Content-Type: " . $mm_type);
header("Content-Length: " .(string)(filesize($file)) );
header('Content-Disposition: attachment; filename="'.$filename.'"');
header("Content-Transfer-Encoding: binary\n");
ob_end_clean();
readfile($file);
скрипт запускает загрузку, но файл имеет неправильный размер.
Мой файл должен быть 17Mo, но я загружаю файл размером 64 КБ каждый раз.
Я поместил эту строку над моим сценарием:
$file = '../uploads/files/' . $filename;
echo "FileSize: " . filesize($file);
exit();
И на нем отображается 17566342, нужного размера.
Эта проблема появляется, когда я совершил большую ошибку в plesk, я запустил эту команду:
chown -R 10003:1003 /
Вся моя система вышла из строя, я мог восстановить ее, обновив plesk, и запустил:
plesk repair fs
Но с тех пор мой скрипт загрузки не работает должным образом.
Я проверил права, каталог загрузок - 755, каталог файлов - тоже 755, файл - 644.