Принудительно загружать MP3-файлы вместо открытия в браузере с помощью Quicktime - PullRequest
0 голосов
/ 24 сентября 2011

ОК. У меня есть веб-сайт, который обслуживает подкасты в формате 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);

Все работаеткрасиво на ПК и в большинстве браузеров Mac.Однако в Safari Quicktime перехватывает загрузку.То же самое происходит на iPhone и iPad.Поскольку целевой аудиторией, скорее всего, будут в основном пользователи Apple, я бы хотел, чтобы кнопка «Загрузить» сделала именно это - загружала, а не играла в браузере с плагином Quicktime, независимо от устройства.Кнопка «Поток» может воспроизводить файл в браузере, но не кнопка «Загрузить».

Выполнение щелчка правой кнопкой мыши (или Cmd + Click) и сохранение файла как ... не допускается.

Есть ли способ принудительной загрузки на всех платформах с PHP, HTTP, HTML и т. Д., Который не требует от пользователя ничего делать, кроме нажатия кнопки «Загрузить»?

1 Ответ

0 голосов
/ 24 сентября 2011

Вам нужно установить HTTP-заголовок content-disposition при обслуживании файла. Устанавливая этот HTTP-заголовок, он будет давать указание браузеру предоставить подсказку, которая позволит пользователю сохранить или открыть файл. Вы можете найти больше информации здесь:

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

...