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