Heim >Web-Frontend >js-Tutorial >Wie kann ich mit Ajax Dateien in einer Struts2-Anwendung asynchron herunterladen?

Wie kann ich mit Ajax Dateien in einer Struts2-Anwendung asynchron herunterladen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-28 10:30:13489Durchsuche

How Can I Asynchronously Download Files in a Struts2 Application Using Ajax?

Asynchroner Dateidownload mit Ajax

Problem:

In einer Struts2-Anwendung ruft ein jQuery-Ajax-Aufruf binäre Stream-Daten ab stellt eine herunterzuladende Datei dar, aber Benutzer können die Datei nicht speichern lokal.

Lösung:

Moderner Browser-Ansatz (2019 und höher)

Für moderne Browser kann ein vereinfachter Ansatz verwendet werden übernommen werden:

  1. Verwenden Sie die fetch()-API, um die abzurufen Datei:

    fetch('https://jsonplaceholder.typicode.com/todos/1')
      .then(resp => resp.blob())
  2. Erstellen Sie eine Objekt-URL für die Datei:

      .then(blob => {
     const url = window.URL.createObjectURL(blob);
  3. Erstellen Sie ein verstecktes Element und legen Sie seine Attribute fest:

     const a = document.createElement('a');
     a.style.display = 'none';
     a.href = url;
     a.download = 'todo-1.json';
  4. Fügen Sie das Element an das Dokument an und klicken Sie darauf:

     document.body.appendChild(a);
     a.click();
  5. Entfernen Sie die Objekt-URL :

     window.URL.revokeObjectURL(url);
  6. Benachrichtigen Sie den Benutzer über den Erfolg Download:

     alert('your file has downloaded!');

Zusätzliche Überlegungen:

  • Stellen Sie die Kompatibilität mit den Zielbrowsern sicher.
  • Handle groß Laden Sie Dateien separat herunter, um potenzielle Leistungsprobleme zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Ajax Dateien in einer Struts2-Anwendung asynchron herunterladen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn