强制下载MP3文件,而不是使用Quicktime在浏览器中打开

时间:2011-09-23 21:35:33

标签: .htaccess download mp3 quicktime podcast

好的我有一个以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等所有平台上强行下载,除了点击“下载”按钮外,不需要用户做任何事情?

1 个答案:

答案 0 :(得分:0)

您需要在提供文件时设置content-disposition HTTP标头。通过设置此HTTP标头,它将指示浏览器提供允许用户保存或打开文件的提示。您可以在此处找到更多信息:

http://support.microsoft.com/kb/260519