Comment définir le nom d'un fichier blob en JavaScript lorsque vous forcez son téléchargement via 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);
}
L'exécution du code ci-dessus télécharge un fichier instantanément sans actualisation de la page qui ressemble à:
bfefe410-8d9c-4883-86c5-d76c50a24a1d
Je veux plutôt définir le nom de fichier comme my-download.json .
javascript
html
download
blob
html5-filesystem
Bleu cendre
la source
la source
Je voulais juste développer la réponse acceptée avec la prise en charge d'Internet Explorer (la plupart des versions modernes, de toute façon), et ranger le code en utilisant jQuery:
Voici un exemple de violon . Godspeed .
la source
Même principe que les solutions ci-dessus. Mais j'ai eu des problèmes avec Firefox 52.0 (32 bits) où de gros fichiers (> 40 Mo) sont tronqués à des positions aléatoires. La reprogrammation de l'appel de revokeObjectUrl () résout ce problème.
exemple jsfiddle
la source
En retard, mais comme j'ai eu le même problème j'ajoute ma solution:
la source
revokeObjectURL
aprèslocation.assign
fonctionne bien dans Firefox, mais interrompt le téléchargement sur Chrome.la source
link.click()
au lieu d'envoyer un événement de souris.Exemple fonctionnel d'un bouton de téléchargement, pour enregistrer une photo de chat à partir d'une URL sous le nom "cat.jpg":
HTML:
JavaScript:
la source
window.location.assign n'a pas fonctionné pour moi. il télécharge bien mais télécharge sans extension pour un fichier CSV sur la plate-forme Windows. Ce qui suit a fonctionné pour moi.
la source
C'est ma solution. De mon point de vue, vous ne pouvez pas contourner le
<a>
.la source