Heim >Java >javaLernprogramm >Wie lade ich mit Spring Controllern dynamisch generierte Dateien herunter?
Dateien von Spring Controllern herunterladen
Viele Anwendungen erfordern den Download von Dateien von einer Website. In einigen Fällen werden diese Dateien dynamisch mithilfe eines Frameworks wie Freemarker und einer PDF-Generierungsbibliothek wie iText generiert. Dies wirft jedoch die Frage auf, wie Benutzern ermöglicht werden kann, die Datei über einen Spring Controller herunterzuladen.
Die Lösung besteht darin, das HttpServletResponse-Objekt zu verwenden, um die Datei in den Ausgabestream zu schreiben. Dies kann mit dem folgenden Code erreicht werden:
@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 org.apache.commons.io.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"); } }
Sobald der Ausgabestream zugänglich ist, kann er als Ziel für das vom PDF-Generator generierte PDF verwendet werden. Darüber hinaus kann durch die Einstellung des Content-Type auf „application/pdf“ der richtige Dateityp für den Browser angegeben werden.
Das obige ist der detaillierte Inhalt vonWie lade ich mit Spring Controllern dynamisch generierte Dateien herunter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!