我正在尝试编写一个php脚本,它将在启动下载到客户端之前检查传入的参数。我刚开始试图发起下载:
<?php
$file = '/tticon.jpg';
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 :(得分:2)
尝试使用application/force-download
作为内容类型。如果您想在brwoser中显示图像,可以使用image/jpg
。
答案 1 :(得分:0)
header("Content-type: application/force-download");
答案 2 :(得分:0)
添加以下行:
header("Content-Type: application/force-download");
答案 3 :(得分:0)
由于文件的扩展名为&#34; .jpg&#34;我认为它的mime是image/jpeg
。
替换此行:
header('Content-Type: application/octet-stream');
用这个:
header('Content-Type: image/jpeg');
如果你真的想强迫浏览器下载文件(我觉得这很不可能):
用以下代码替换:
header("Content-Type: application/force-download");
答案 4 :(得分:0)
您的$file
看起来很可疑。你真的在服务器的根目录中有一个tticon.jpg吗?请记住,PHP的文件功能在服务器的FILESYSTEM上运行,而不是Apache提供的WEB目录。 PHP不会神奇地将您网站的文档根目录预先挂起到该路径。它实际上将查找服务器文件系统的根目录,而不是在您站点的文档根目录中。