Dateien von Spring Controllern herunterladen
Wenn Sie eine PDF-Datei von einer Website herunterladen müssen, ist es üblich, die Datei dynamisch mit zu generieren eine Kombination aus Freemarker und PDF-Frameworks wie iText. Die Erkundung zusätzlicher Optionen kann jedoch zu effizienteren Lösungen führen.
Ein effektiver Ansatz besteht darin, Spring Controller für die Verarbeitung von Dateidownloads zu verwenden. Um dies zu erreichen, können Sie die von Spring bereitgestellte HttpServletResponse-Klasse nutzen. Das folgende Codebeispiel veranschaulicht, wie ein Controller für den Dateidownload eingerichtet wird:
@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"); } }
Durch die Verwendung von Response.getOutputStream() können Sie beliebige Daten, einschließlich generierter PDFs, an den Client streamen. Darüber hinaus können Sie den Dateityp angeben, indem Sie „response.setContentType()“ festlegen. Für PDFs wäre dies Response.setContentType("application/pdf");.
Das obige ist der detaillierte Inhalt vonWie streame ich Dateien zum Herunterladen mit Spring Controllern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!