好的我有一个以MP3格式提供播客的网站。有一个.htaccess将MP3文件的请求路由到下载脚本,如下所示:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule (.*.mp3)$ download.php?file=$1
</IfModule>
PHP下载脚本如下:
$filename = (isset($_REQUEST['file']) ? $_REQUEST['file'] : '');
$filesize = @filesize($filename);
if ($filename == '' || $filesize == 0) exit(0);
header("Content-Type: audio/mpeg");
header("Content-Description: {$filename}");
header("Content-length: {$filesize}");
header("Content-Disposition: attatchment; filename={$filename}");
readfile($filename);
在PC和大多数Mac浏览器中,一切都运行良好。但是,在Safari上,Quicktime正在拦截下载。在iPhone和iPad上也发生了同样的事情。由于目标受众可能主要是Apple用户,我希望“下载”按钮可以做到这一点 - 下载,而不是使用Quicktime插件在浏览器中播放,无论设备如何。 “Stream”按钮可以在浏览器中播放文件,但不能播放“下载”按钮。
不接受右键单击(或Cmd +单击)和将文件另存为...
有没有办法在PHP,HTTP,HTML等所有平台上强行下载,除了点击“下载”按钮外,不需要用户做任何事情?
答案 0 :(得分:0)
您需要在提供文件时设置content-disposition
HTTP标头。通过设置此HTTP标头,它将指示浏览器提供允许用户保存或打开文件的提示。您可以在此处找到更多信息: