html - página - El archivo se abre en lugar de descargarlo en internet explorer en un enlace href
hipervinculos en html ejemplos (8)
<a href="path/to/file/filename.xxx" download="filename.xxx">filename</a>''
Cuando hago clic en el enlace, mi nombre de archivo.xxx debe descargarse.
Funciona perfectamente en cromo. Pero en el explorador de Internet, abre el archivo en lugar de descargarlo. ¿Cual podría ser el problema? ¿Hay alguna propiedad que deba agregarse para que funcione en ie.
Y también necesito una muestra de descarga de archivos que funcione para todos los navegadores.
Debe ser fijado en el lado del servidor. Su servidor debe devolver estos encabezados para este tipo de archivos:
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=/"filename.xxx/"
El atributo de descarga no es compatible con IE (consulte http://caniuse.com/#search=download%20attribute ).
Eso sugiere que el atributo de descarga solo es compatible con Firefox, Chrome, Opera y la última versión del navegador de Blackberry.
Para otros navegadores necesitarás usar métodos más tradicionales para forzar la descarga. Es decir, el código del lado del servidor es necesario para establecer un encabezado apropiado de Tipo de contenido y Disposición del contenido para indicar (o hacer trucos según su punto de vista) el navegador para descargar el elemento. Los encabezados deben tener este aspecto:
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=/"filename.xxx/"
(Gracias a antyrat por la copia y pegado de los encabezados)
Es conocido el problema de los encabezados HTTP con Internet Explorer. Intente editar el archivo .htaccess
su servidor (si usa Apache) e incluya las siguientes reglas:
# IE: force download of .xxx files
AddType application/octect-stream .xxx
<Files *.xxx>
ForceType application/octet-stream
Header Set Content-Disposition attachment
</Files>
Esto debe ser una cuestión de encabezados http.
Vea aquí: Encabezados HTTP para descargas de archivos
El servidor debe indicar a su navegador que descargue el archivo enviando
Content-Type: application/octet-stream;
Content-Disposition: attachment;
en los encabezados
Esto no es un problema de código. Es su configuración por defecto de IE
Para cambiar la configuración " siempre abierto ":
- En el Explorador de Windows, haga clic en el menú "Herramientas", elija "Opciones de carpeta"
- En la ventana que aparece, haga clic en la pestaña "Tipos de archivos" y desplácese por la lista hasta que encuentre la extensión de archivo que desea cambiar (están en orden alfabético). Por ejemplo, si Internet Explorer siempre intenta abrir archivos .zip, desplácese por la lista hasta que encuentre la entrada para "zip".
- Haga clic en el tipo de archivo, luego en el botón "Avanzado".
- Marque la casilla "Confirmar después de descargar", luego haga clic en Aceptar> Cerrar.
EDITAR: Si me pregunta, en lugar de realizar cambios en el código, agregaría el siguiente texto " Usuarios de Internet Explorer: para descargar el archivo," Haga clic derecho "en el enlace y presione " Guardar destino como "para descargar el archivo".
EDIT 2: ESTA solución funcionará perfectamente para usted. Es una solución que acabo de copiar de la otra respuesta. No estoy tratando de pasarlo como mío
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=/"filename.xxx/"
Sin embargo, debe asegurarse de que especifica el tipo de archivo (s) que permite. Usted ha mencionado en su publicación que desea esto para cualquier tipo de archivo. Esto será un problema.
Por ej. Si su sitio tiene imágenes y si el usuario final hace clic en estas imágenes, se descargarán en su computadora en lugar de abrirlas en una página nueva. Consiguió el punto. Así que necesitas especificar las extensiones de archivo.
Para el servidor apache2:
AddType application/octect-stream .ova
La ubicación del archivo dependerá de la versión particular de Apache2: la nuestra está en /etc/apache2/mods-available/mime.conf
Referencia:
https://askubuntu.com/questions/610645/how-to-configure-apache2-to-download-files-directly
Podrías configurar esto en tu cabecera http
httpResponse.setHeader("Content-Type", "application/force-download");
httpResponse.setHeader("Content-Disposition",
"attachment;filename="
+ "MyFile.pdf");
Zip su archivo (.zip) e IE le dará al usuario la opción de abrir o descargar el archivo.