强制MP3文件下载,而不是使用Quicktime在浏览器中打开
问题描述:
好的我有一个网站,提供MP3格式的播客。有一个的.htaccess的路由MP3文件的下载脚本的请求,那就是如下:强制MP3文件下载,而不是使用Quicktime在浏览器中打开
<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上也出现同样的情况。由于目标受众可能主要是苹果用户,我希望“下载”按钮可以做到这一点 - 下载,而不是使用Quicktime插件在浏览器中播放,无论设备如何。 “流”按钮可以在浏览器中播放文件,但不能播放“下载”按钮。
执行右键单击(或Cmd +单击)并将文件另存为...是不可接受的。
有什么办法可以在所有平台上用PHP,HTTP,HTML等进行强制下载,除非点击下载按钮,否则不需要用户执行任何操作?
答
您需要在提供文件时设置content-disposition
HTTP标头。通过设置这个HTTP头,它将指示浏览器提供一个提示,让用户保存或打开文件。你可以在这里找到更多的信息: