2008-12-03 10 views

Respuesta

5

Para que esto suceda, debe enviar un encabezado con el encabezado Content-disposition: attachment; filename=fname.ext en su idioma favorito antes de enviar el archivo.

Sin conocer los detalles, como el idioma y el control que tiene sobre la configuración del servidor, no puedo darle instrucciones más detalladas. Sin embargo, no puedes hacerlo solo con html y javascript.

+0

También es posible agregar esto estáticamente en IIS si solo son un par de archivos y no desea hacerlo con ASP/PHP. Para aplicar el encabezado de forma estática, haga clic con el botón derecho en el Administrador de servicios de Internet y luego seleccione Propiedades. Seleccione la pestaña Encabezados HTTP e ingrese el encabezado que se encuentra arriba. – Stefan

3

Está lejos, sé que eso no es posible. Sin la capacidad de establecer los encabezados apropiados, el navegador decidirá qué hacer con el archivo, que generalmente es la reproducción, tendrá que pedirle a los usuarios que presionen, haga clic derecho + guardar como. Si tiene acceso al servidor, es bastante fácil de configurar los encabezados en PHP o Apache usando .htacces

 
<FilesMatch "\.(?i:mp3)$"> 
    ForceType audio/mpeg 
    Header set Content-Disposition attachment 
</FilesMatch> 

O lo que el navegador no reconocerá que es un MP3 y ni siquiera intente abrirlo:

 
<FilesMatch "\.(?i:mp3)$"> 
    ForceType application/octet-stream 
    Header set Content-Disposition attachment 
</FilesMatch> 

para php header consulte Configuración de: http://nl.php.net/header

0

de acuerdo con smazurov, y en última instancia no se puede controlar la presentación de sus medios de comunicación, aunque el contenido-disposición puede lograr que se haga para usted. Aquí está el RFC on the header in question.

0

JavaScript del lado del cliente no puede lograr eso (la funcionalidad más cercana es document.execCommand('SaveAs'), que guarda la página html completa).

-1

Si bien esto no es una solución, cambie la extensión del archivo a cualquier otra cosa que no sea MP3. Y, solicite al usuario que cambie el nombre una vez descargado.

0

Utilizando google encontré un hilo con un js. usado para guardar archivos Check it out (publicado en 2003, no lo probé).

La mejor soluting sería utilizar php, asp, o cualquier otro idioma de su compatibilidad con el servidor, para solucionar este problema ;-)

0
<a href="linkto.mp3" download>Download MP3 File </a> 
+1

No es compatible con el navegador cruzado. –

0

Si desea que se ven obligados a descargar de un enlace, entonces añadir el atributo download al elemento de enlace (nombre de fichero opcional):

<a href="file.mp3" download="Song_Name.mp3">Download</a> 

Si desea que los usuarios se ven obligados a bajar el archivo cuando visitan la URL de cualquier manera, usted está fuera de suerte. Eso no es posible solo con HTML y JS. Debe tener acceso al servidor para afectar los encabezados del archivo antes de que se cargue en el navegador, como han dicho otros.

Cuestiones relacionadas