Я использую этот код, чтобы пользователи могли загружать zip-файл:
if(file_exists($filename)){ header("Content-Disposition: attachment; filename=".basename(str_replace(' ', '_', $filename))); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer"); header("Content-Length: " . filesize($filename)); flush(); $fp = fopen($filename, "r"); while (!feof($fp)) { echo fread($fp, 65536); flush(); } fclose($fp); exit; }
Когда файл загружается, он загружает только 25 632 килобайт данных. Однако ZIP-файл составляет 26252 килобайт …
Почему браузер получает все 25 МБ, но затем останавливается?
Я проверил заголовок Content-Length
чтобы убедиться, что он правильный, и это …
В firefox, когда я загружаю файл, он говорит 'из 25mb' SO, браузер считает, что 25mb – это ПОЛНАЯ сумма … однако длина контента, когда echo'd равна 26252904?