Jak ustawić nazwę pliku blob w JavaScript podczas wymuszania pobierania go przez 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);
}
Uruchomienie powyższego kodu powoduje natychmiastowe pobranie pliku bez odświeżania strony, która wygląda następująco:
bfefe410-8d9c-4883-86c5-d76c50a24a1d
Zamiast tego chcę ustawić nazwę pliku jako my-download.json .
javascript
html
download
blob
html5-filesystem
Ash Blue
źródło
źródło
Chciałem tylko rozwinąć akceptowaną odpowiedź z obsługą Internet Explorera (w każdym razie najnowocześniejszych wersji) i uporządkować kod za pomocą jQuery:
Oto przykład Fiddle . Godspeed .
źródło
Ta sama zasada co powyższe rozwiązania. Ale miałem problemy z Firefoksem 52.0 (32 bity), w którym duże pliki (> 40 MB) są obcinane w losowych pozycjach. Ponowne planowanie wywołania metody revokeObjectUrl () rozwiązuje ten problem.
przykład jsfiddle
źródło
Późno, ale ponieważ miałem ten sam problem, dodaję swoje rozwiązanie:
źródło
revokeObjectURL
polocation.assign
działa poprawnie w przeglądarce Firefox, ale przerywa pobieranie w Chrome.źródło
link.click()
zamiast wywołać zdarzenie myszy.Przykład roboczy działania przycisku pobierania, aby zapisać zdjęcie kota z adresu URL jako „cat.jpg”:
HTML:
JavaScript:
źródło
Window.location.assign nie działało dla mnie. pobiera dobrze, ale pobiera bez rozszerzenia pliku CSV na platformie Windows. Poniższe działało dla mnie.
źródło
To jest moje rozwiązanie. Z mojego punktu widzenia nie można ominąć
<a>
.źródło