Heim  >  Artikel  >  Java  >  Wie kann ich ein von einer Aktionsklasse generiertes PDF über Ajax herunterladen?

Wie kann ich ein von einer Aktionsklasse generiertes PDF über Ajax herunterladen?

DDD
DDDOriginal
2024-11-01 23:01:29426Durchsuche

How Can I Download a PDF Generated by an Action Class via Ajax?

Verwaltung von PDF-Downloads über Ajax: Eine Lösung

Wenn ein Ajax-Aufruf versucht, eine von einer Aktionsklasse generierte PDF-Datei herunterzuladen, kann dies der Fall sein Es tritt ein Fehler auf, wenn der Stream nicht an den Browser übermittelt werden kann. Um dieses Problem zu lösen, ist ein anderer Ansatz erforderlich.

In der bereitgestellten Aktionsklasse wird die PDF-Datei generiert und ihr Stream mit den richtigen Headern zum Herunterladen eingerichtet. Allerdings muss der Ajax-Aufruf anders gehandhabt werden, um die Übertragung zu erleichtern.

Hier ist eine Lösung, die erfolgreich implementiert wurde:

<code class="javascript">$.ajax({
  url: '<URL_TO_FILE>',
  success: function(data) {
    var blob=new Blob([data]);
    var link=document.createElement('a');
    link.href=window.URL.createObjectURL(blob);
    link.download="<FILENAME_TO_SAVE_WITH_EXTENSION>";
    link.click();
  }
});</code>

In diesem Code ruft der Ajax-Aufruf die PDF-Datei ab Stream als Datenvariable. Anschließend wird aus den Daten ein Blob-Objekt erstellt. Ein neues Linkelement wird erstellt und sein href wird auf die URL des Blobs festgelegt. Das Download-Attribut wird auf den gewünschten Dateinamen mit der entsprechenden Erweiterung gesetzt. Abschließend wird auf den Link geklickt, um den Downloadvorgang zu starten.

Dieser Ansatz hat sich bei der Bereitstellung von von der Aktionsklasse generierten PDF-Dateien an den Browser zum Herunterladen als effektiv erwiesen und ermöglicht so eine nahtlose Integration zwischen dem Server und dem Client.

Das obige ist der detaillierte Inhalt vonWie kann ich ein von einer Aktionsklasse generiertes PDF über Ajax 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