2010-08-04 14 views
7

Tengo un mp3 en un servidor apache. Quiero que se descargue como un archivo cuando un usuario visita el enlace. En cambio, QuickTime, o el reproductor multimedia de Google Chrome intentará transmitirlo.Detener el archivo mp3 desde la transmisión en navegadores

¿Hay una solución para esto con los encabezados? ¿O es la única opción para 'clic derecho y guardar como'?

Editar Aquí está mi encabezado. Safari ha detenido la transmisión, pero Chrome continúa haciéndolo. Chrome parece ignorar esto:

puedo ver la cabecera se ha cambiado correctamente:

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 

¿Hay algo más en la cabecera que podría causar esto?

Editar Haciendo un poco de investigación he encontrado esto: http://www.google.com/support/forum/p/Chrome/thread?tid=76de4f53f43f03d3&hl=en Parece que puede haber un error en cromo evitando que se descarga.

Respuesta

12

Desea establecer el encabezado de respuesta Content-Disposition en "datos adjuntos", y probablemente en el campo "nombre de archivo" también.

Ejemplo:

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

Para lograr esto directamente en Apache, trate de poner lo siguiente en su httpd.conf o .htaccess archivo:

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

EDIT:

campo Nombre del archivo Agregado a Ejemplo de configuración de Apache, tomado de this answer. Sin embargo, debe tener en cuenta los posibles problemas causados ​​por los nombres de archivo con caracteres que no sean US-ASCII en ellos: consulte this question.

Como alternativa, podría usar un nombre de archivo de constante genérico (ya que conoce la extensión ya) como song.mp3, pero esta podría no ser una opción según sus circunstancias.

Una tercera opción sería crear una secuencia de comandos para servir estos MP3, que puede establecer el encabezado y se encarga de eliminar los caracteres no deseados del nombre del archivo.

+0

Gracias por indicarme la dirección correcta. Encontré este artículo sobre cómo forzar las descargas http://www.thingy-ma-jig.co.uk/blog/06-08-2007/force-a-pdf-to-download – Keyo

+0

http: //www.jtricks .com/bits/content_disposition.html – NullUserException

+0

Chrome está ignorando esto, no sé por qué. Pegué el encabezado de arriba. – Keyo

Cuestiones relacionadas