Heim >Java >javaLernprogramm >Wie kann ich generierte PDF-Dateien effizient von Spring Controllern herunterladen?
PDF-Dateien von Spring Controllern herunterladen
Hintergrund:
Dateien effizient aus Webanwendungen herunterladen ist eine häufige Anforderung. Dieser Artikel befasst sich mit der Herausforderung, generierte PDF-Dateien von Spring-Controllern herunterzuladen.
PDF-Dateien generieren:
Zum Generieren von PDF-Dateien sollten Sie eine Kombination aus Freemarker-Vorlagen und a in Betracht ziehen PDF-Generierungs-Framework wie iText. Dies ermöglicht die dynamische Generierung von PDF-Inhalten basierend auf Benutzereingaben oder anderen Daten.
Dateien über Controller herunterladen:
So aktivieren Sie Dateidownloads über Spring-Controller:
Erstellen Sie eine Controller-Methode:
Erstellen Sie eine Controller-Methode, die verarbeitet die Download-Anfrage. In der Regel umfasst dies die Verwendung der Annotation @RequestMapping, um die Methode einem bestimmten Anforderungspfad zuzuordnen. Zum Beispiel:
@RequestMapping(value = "/download/pdf/{fileName}", method = RequestMethod.GET) public void downloadPdf(@PathVariable("fileName") String fileName, HttpServletResponse response) { ... }
Konfigurieren Sie die Antwort:
Legen Sie die Antwortheader so fest, dass sie den Dateityp angeben und angeben den Dateinamen zum Speichern. Für PDF-Dateien verwenden Sie:
response.setContentType("application/pdf"); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
Kopieren Sie die Dateidaten in die Antwort:
Verwenden Sie org.apache.commons.io.IOUtils. copy-Methode zum Übertragen der PDF-Daten vom Eingabestream in die Ausgabe der Antwort stream:
IOUtils.copy(inputStream, response.getOutputStream());
Beispielcode:
Der folgende Codeausschnitt demonstriert die Implementierung einer Controller-Methode für PDF-Dateidownloads:
@RequestMapping(value = "/files/{file_name}", method = RequestMethod.GET) public void getFile( @PathVariable("file_name") String fileName, HttpServletResponse response) { try { // get your file as InputStream InputStream is = ...; // copy it to response's OutputStream IOUtils.copy(is, response.getOutputStream()); response.flushBuffer(); } catch (IOException ex) { log.info("Error writing file to output stream. Filename was '{}'", fileName, ex); throw new RuntimeException("IOError writing file to output stream"); } }
Das obige ist der detaillierte Inhalt vonWie kann ich generierte PDF-Dateien effizient von Spring Controllern herunterladen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!