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!