我正在提供一个布道下载网站,我让用户遇到下载问题。任何人对如何改进此代码或者发送更好的标题都有任何想法...
$path = "http://www.domain.com/sermon_files/".date("Y", $array["preached"])."/".$array["filename"];
$corePath = "/home/user/public_html/sermon_files/".date("Y", $array["preached"])."/".$array["filename"];
if (!file_exists($corePath)) {
echo "An error has occured with this download.";
} else {
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Type: audio/mp3");
header("Content-Disposition: attachment; filename=\"".$array["title"]."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($corePath));
readfile($path);
exit();
}
答案 0 :(得分:0)
答案 1 :(得分:0)
注意Expires:0下载。这与IE6微小的大脑混淆,让它认为没有数据可以保存/打开。尝试在一分钟内访问过期,看看是否能解决问题。否则,请准确告诉我们问题所在。
答案 2 :(得分:0)
看一下这个帖子,我遇到了类似的问题:PHP: Force file download and IE, yet again。还要考虑使用Fiddler来捕获发送到客户端的确切HTTP头。