0

好的,我有一个提供 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 插件的浏览器中播放,无论设备如何。“流”按钮可以在浏览器中播放文件,但不能“下载”按钮。

执行右键单击(或 Cmd+单击)并将文件另存为...是不可接受的。

有没有什么方法可以使用 PHP、HTTP、HTML 等在所有平台上强制下载,除了单击“下载”按钮之外不需要用户做任何事情?

4

1 回答 1

0

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

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

于 2011-09-23T21:40:15.563 回答