Мешайте mp3 файлу передать потоком в браузерах

У меня есть mp3 на апачском сервере. Я хочу, чтобы это было загружено как файл, когда пользователь посещает ссылку. Вместо этого quicktime или медиаплеер хромиса Google попытается передать его потоком.

Есть ли фиксация для этого с заголовками? Или единственная опция так 'щелчок правой кнопкой save as'?

Редактирование Здесь является моим заголовком. Safari прекратил передавать потоком, но хром contines, чтобы сделать это. Chrome, кажется, игнорирует это:

Я вижу, что заголовок был изменен правильно:

Date    Wed, 04 Aug 2010 00:14:35 GMT
Server  Apache/2.2.13 (Unix) mod_ssl/2.2.13 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.11
Last-Modified   Tue, 03 Aug 2010 04:37:01 GMT
Etag    "2bbd692-79597d-48ce3de3f5540"
Accept-Ranges   bytes
Content-Length  7952765
Content-Disposition attachment
Keep-Alive  timeout=5, max=100
Connection  Keep-Alive
Content-Type    audio/mpeg

Есть ли что-либо еще в заголовке, который вызвал бы это?

Редактирование, Проводящее некоторое исследование, я нашел это: http://www.google.com/support/forum/p/Chrome/thread?tid=76de4f53f43f03d3&hl=en Похож могла бы быть ошибка в хроме, препятствующем тому, чтобы это загрузило.

7
задан Keyo 4 August 2010 в 00:55
поделиться

1 ответ

Вы хотите установить Content-Disposition заголовок ответа на "attachment", и, возможно, поле "filename" также.

Пример:

Content-Disposition: attachment; filename=foo.mp3;

Чтобы сделать это непосредственно в Apache, попробуйте поместить следующее в ваш httpd.conf или .htaccess файл:

<FilesMatch "\.(?i:mp3)$">
  ForceType audio/mpeg
  SetEnvIf Request_URI "^.*/?([^/]*)$" FILENAME=$1
  Header set Content-Disposition "attachment; filename=%{FILENAME}e"
  UnsetEnv FILENAME
</FilesMatch>

EDIT:

Добавлено поле filename в пример конфигурации Apache, заимствованный из этого ответа. Однако вы должны знать о потенциальных проблемах, вызванных именами файлов с символами не из US-ASCII: смотрите этот вопрос.

В качестве альтернативы можно использовать общее постоянное имя файла (поскольку вы уже знаете расширение), например song.mp3, но это может оказаться неприемлемым в зависимости от ваших обстоятельств.

Третьим вариантом может быть создание скрипта для обслуживания этих MP3, который может установить заголовок и позаботиться об удалении ненужных символов из имени файла.

12
ответ дан 6 December 2019 в 21:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: