我正在使用此脚本下载文件并且它可以正常工作,但我在浏览器中没有获得%或时间的任何下载进度,它只是说未知。是否可以调整代码来添加该参数?除此之外,您是否在代码中看到任何其他奇怪的东西或任何可以改进的东西?谢谢!
<?php
$filepath = 'x';
$title = 'y';
$download = true;
header("Cache-control: private");
header("Content-Type: application/octet-stream");
if ($download) {
header("Content-Disposition: attachment; filename=\"" . $title . "\"");
header('Content-Transfer-Encoding: binary');
} else {
header("Content-Disposition: inline; filename=\"" . $title . "\"");
}
// Disable caching
header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
header('Expires: 0'); // Proxies.
readfile($filepath);
exit;
?>
答案 0 :(得分:0)
服务器未发送Content-Length标头,因此客户端无法知道预期会有多少数据,并且无法显示进度。如果响应包含文件内容,则可以通过调用stat($filepath)
来获取文件大小。