PHP标头内容 – 处置:附件强制.php文件或内联
发布时间:2020-12-13 22:04:15 所属栏目:PHP教程 来源:网络整理
导读:我想从我的网站下载单个.mp3文件,但在使用此代码时,它会在Firefox和Safari中强制使用.php.但是在Chrome中,它会强制将文件作为内联并在页面上播放.我怎样才能让他们真正下载.mp3文件? $track = $_SERVER['QUERY_STRING'];if (file_exists("/home/user/gets/"
我想从我的网站下载单个.mp3文件,但在使用此代码时,它会在Firefox和Safari中强制使用.php.但是在Chrome中,它会强制将文件作为内联并在页面上播放.我怎样才能让他们真正下载.mp3文件?
$track = $_SERVER['QUERY_STRING']; if (file_exists("/home/user/gets/" .$track)) { header("Content-Type: audio/mpeg"); header('Content-Length: ' . filesize($track)); header('Content-Disposition: attachment; filename="test.mp3"'); $str = "/home/user/gets/".$track; readfile($str); exit; } else { header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found',true,404); echo "no file"; } 我也尝试下载.zip文件并将Content-Type更改为application / ocetet-stream,但它会强制所有浏览器上的.php文件. //$track = $_SERVER['QUERY_STRING']; $track = 'testfile.zip'; if (file_exists("/home/user/gets/" .$track)) { header("Content-Type: application/octet-stream"); header('Content-Length: ' . filesize($track)); header('Content-Disposition: attachment; filename="test.mp3"'); $str = "/home/user/gets/".$track; readfile($str); exit; } else { header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found',404); echo "no file"; } 解决方法
我认为filesize($track)是错误的,它应该是整个路径filesize(“/ home / user / gets /”.$track).这将导致php输出错误消息,阻止您设置内容长度和处置标头.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |