¿Cómo se configura el nombre de un archivo de blob en JavaScript cuando se fuerza la descarga a través de window.location?
function newFile(data) {
var json = JSON.stringify(data);
var blob = new Blob([json], {type: "octet/stream"});
var url = window.URL.createObjectURL(blob);
window.location.assign(url);
}
Al ejecutar el código anterior, se descarga un archivo al instante sin una actualización de página que se vea así:
bfefe410-8d9c-4883-86c5-d76c50a24a1d
En su lugar, quiero establecer el nombre del archivo como my-download.json .
javascript
html
download
blob
html5-filesystem
Azul ceniza
fuente
fuente
Solo quería ampliar la respuesta aceptada con soporte para Internet Explorer (la mayoría de las versiones modernas, de todos modos), y ordenar el código usando jQuery:
Aquí hay un ejemplo de Fiddle . Godspeed .
fuente
El mismo principio que las soluciones anteriores. Pero tuve problemas con Firefox 52.0 (32 bits) donde los archivos grandes (> 40 MB) se truncan en posiciones aleatorias. Reprogramar la llamada de revokeObjectUrl () soluciona este problema.
Ejemplo de jsfiddle
fuente
Tarde, pero como tuve el mismo problema agrego mi solución:
fuente
revokeObjectURL
despuéslocation.assign
funciona bien en Firefox, pero interrumpe la descarga en Chrome.fuente
link.click()
lugar de enviar un evento de mouse.Ejemplo de trabajo de un botón de descarga, para guardar una foto de gato de una url como "cat.jpg":
HTML:
JavaScript:
fuente
window.location.assign no funcionó para mí. se descarga bien pero se descarga sin una extensión para un archivo CSV en la plataforma Windows. Lo siguiente funcionó para mí.
fuente
Esta es mi solución Desde mi punto de vista, no puedes pasar por alto el
<a>
.fuente