我有一个文档下载站点,用于跟踪下载的文件。
我的问题是通过我正在使用的脚本获取zip文件。除zip文件外,其他每个文件都被强制下载。当一个zip文件被推送时,它只会进入download.php页面,其中脚本没有文件被推出。
ob_start();
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
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;
答案 0 :(得分:0)
以下是适用于我的代码段:
if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) {
header('Content-Type: "application/octet-stream"');
header('Content-Disposition: attachment; filename="'.basename($file_url).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-Transfer-Encoding: binary");
header('Pragma: public');
header("Content-Length: ".filesize($file_url));
} else {
header('Content-Type: "application/octet-stream"');
header('Content-Disposition: attachment; filename="'.basename($file_url).'"');
header("Content-Transfer-Encoding: binary");
header('Expires: 0');
header('Pragma: no-cache');
header("Content-Length: ".filesize($file_url));
}
readfile($file_url);
答案 1 :(得分:0)
有类似的问题,这个引用有助于那段时间:
header('Content-Disposition: attachment; filename="'.basename($file).'"');
答案 2 :(得分:0)
我没有使用base_name
作为内容配置和长度,而是使用完整路径。使用base_name
为我工作。