Genero enlaces normales como: <a href="https://stackoverflow.com/path/to/image"><img src="/path/to/image" /></a>
en una aplicación web.
Cuando hago clic en el enlace, muestra la imagen en una página nueva. Si desea guardar la imagen, debe hacer clic derecho sobre ella y seleccionar "guardar como"
No quiero este comportamiento, me gustaría que aparezca un cuadro de descarga cuando haga clic en el enlace, ¿es posible solo con html o javascript? ¿Cómo?
Si no, supongo que tendría que escribir un script download.php y llamarlo al href con el nombre del archivo como parámetro ...?
Respuestas:
Todavía no es totalmente compatible con http://caniuse.com/#feat=download , pero puede usarlo con modernizr https://modernizr.com/download/?adownload-setclasses ( en Detecciones no centrales ) para verificar el soporte de el navegador.
fuente
download
atributo de atributo solo funciona para URL del mismo origen . MDN DocsLa forma más fácil de crear un enlace de descarga para una imagen o html es establecer el atributo de descarga , pero esta solución solo funciona en navegadores modernos.
"myimage" es un nombre de archivo para descargar. La extensión se agregará automáticamente Ejemplo aquí
fuente
download.php:
fuente
<a href="download.php?file=../dbparams.inc>">Download</a>
por ejemplo. Más información aquí: en.wikipedia.org/wiki/Directory_traversal_attackNo lo es. Necesitará algo en el servidor para enviar un encabezado Content-Disposition para configurar el archivo como un archivo adjunto en lugar de estar en línea. Sin embargo, podría hacer esto con una configuración simple de Apache.
He encontrado un ejemplo de cómo hacerlo usando mod_rewrite , aunque sé que hay una manera más simple.
fuente
Si está utilizando HTML5, puede agregar el atributo 'descargar' a sus enlaces.
http://www.w3schools.com/tags/att_a_download.asp
fuente
Prueba esto...
fuente
Atributo de descarga HTML para especificar que el destino se descargará cuando un usuario haga clic en el hipervínculo.
Este atributo solo se usa si el atributo href está configurado.
El valor del atributo será el nombre del archivo descargado. No hay restricciones en los valores permitidos, y el navegador detectará automáticamente la extensión de archivo correcta y la agregará al archivo (.img, .pdf, .txt, .html, etc.).
Código de ejemplo:
HTML5:
Salida :
Descargar imagen >>
Descarga HTML o Chrome
Descargar imagen >>
fuente
No puede hacerlo con html / javascript puro. Esto se debe a que tiene una conexión separada con el servidor web para recuperar un archivo separado (la imagen) y un servidor web normal servirá el archivo con encabezados de contenido configurados para que el navegador que lee el tipo de contenido decida que el tipo puede manejarse internamente.
La forma de forzar al navegador a que no maneje el archivo internamente es cambiar los encabezados (disposición de contenido preferiblemente o tipo de contenido) para que el navegador no intente manejar el archivo internamente. Puede hacerlo escribiendo un script en el servidor web que establezca dinámicamente los encabezados (es decir, download.php) o configurando el servidor web para que devuelva diferentes encabezados para el archivo que desea descargar. Puede hacer esto por directorio en el servidor web, lo que le permitiría escapar sin escribir ningún php o javascript, simplemente tenga todas sus imágenes de descarga en esa ubicación.
fuente
Código simple para descargar imágenes con una imagen haciendo clic usando php
fuente
Descarga de imágenes con el uso de hacer clic en la imagen!
¡Hice este código simple! :)
fuente