文件下载期间文件大小不会显示在 PHP 下载脚本上
Posted
技术标签:
【中文标题】文件下载期间文件大小不会显示在 PHP 下载脚本上【英文标题】:File size will not display on PHP download script during file download 【发布时间】:2011-04-05 05:11:17 【问题描述】:当您转到某个页面时,我正在使用 php 脚本下载文件,但我无法将其设置为当有人下载文件时,它会显示文件大小(我的显示“剩余时间未知”)。我在 Google 上环顾四周,找不到如何为我显示文件大小,因为根据所有这些脚本,我做对了。我已经回显了文件大小以确保脚本正确读取文件,并返回正确的文件大小(以字节为单位)。
$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>
【问题讨论】:
一定要把答案标记为正确的。 【参考方案1】:我了解到 Apache 的“mod_deflate”扩展可能会导致此类脚本出现问题。如果您启用了它,您应该为该特定脚本禁用它。
【讨论】:
以上是关于文件下载期间文件大小不会显示在 PHP 下载脚本上的主要内容,如果未能解决你的问题,请参考以下文章