Я использую PHP-скрипт для загрузки файла, когда вы переходите на страницу, но я не могу настроить его, чтобы при загрузке файла он показывал размер файла (мои шоу показывают «неизвестное время»). Я просмотрел Google и не могу понять, как сделать размер файла доступным для меня, потому что, согласно всем этим сценариям, я делаю это правильно. У меня есть echo'd the filesize, чтобы убедиться, что скрипт правильно читает файл и возвращает правильный размер файла в байтах.
$file = 'audio/song.mp3'; if(file_exists($file)) { header('Content-description: File Transfer'); header('Content-type: application/force-download'); header('Content-disposition: attachment; filename="' . $songname . '_' . $filetype . '.' . $ext . '"'); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); exit; } else { die; }
Заранее спасибо.
Спасибо, что отключение mod_deflate сработало.
В случае, если кто-то спотыкается здесь и должен выяснить, как его исправить, добавьте это в свой .htaccess.
# for URL paths that begin with "/foo/bar/" SetEnvIf Request_URI ^/foo/bar/ no-gzip=1 # for files that end with ".py" <FilesMatch \.py$> SetEnv no-gzip 1 </FilesMatch>
Я читал, что расширение «mod_deflate» от Apache может вызвать проблемы с этим типом скрипта. Если вы включили его, вы должны отключить его для этого конкретного скрипта.