Wie legen Sie den Namen einer Blob-Datei in JavaScript fest, wenn Sie das Herunterladen über window.location erzwingen?
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);
}
Durch Ausführen des obigen Codes wird eine Datei sofort heruntergeladen, ohne dass eine Seitenaktualisierung erfolgt, die wie folgt aussieht:
bfefe410-8d9c-4883-86c5-d76c50a24a1d
Ich möchte stattdessen den Dateinamen als my-download.json festlegen .
javascript
html
download
blob
html5-filesystem
Aschblau
quelle
quelle
Ich wollte nur die akzeptierte Antwort mit Unterstützung für Internet Explorer (jedenfalls die modernsten Versionen) erweitern und den Code mit jQuery aufräumen:
Hier ist ein Beispiel für Fiddle . Gute Fahrt .
quelle
Gleiches Prinzip wie die obigen Lösungen. Ich hatte jedoch Probleme mit Firefox 52.0 (32 Bit), bei denen große Dateien (> 40 MByte) an zufälligen Positionen abgeschnitten wurden. Das Neuplanen des Aufrufs von revokeObjectUrl () behebt dieses Problem.
jsfiddle Beispiel
quelle
Spät, aber da ich das gleiche Problem hatte, füge ich meine Lösung hinzu:
quelle
revokeObjectURL
nachlocation.assign
funktioniert in Firefox einwandfrei, unterbricht jedoch den Download in Chrome.quelle
link.click()
anstatt ein Mausereignis auszulösen.Arbeitsbeispiel eines Download-Buttons zum Speichern eines Katzenfotos von einer URL als "cat.jpg":
HTML:
JavaScript:
quelle
window.location.assign hat bei mir nicht funktioniert. Es wird problemlos heruntergeladen, jedoch ohne Erweiterung für eine CSV-Datei auf der Windows-Plattform. Folgendes hat bei mir funktioniert.
quelle
Das ist meine Lösung. Aus meiner Sicht kann man das nicht umgehen
<a>
.quelle