Heim > Java > javaLernprogramm > Wie streame ich Dateien zum Herunterladen mit Spring Controllern?

Wie streame ich Dateien zum Herunterladen mit Spring Controllern?

DDD
Freigeben: 2024-12-23 01:34:45
Original
317 Leute haben es durchsucht

How to Stream Files for Download Using Spring Controllers?

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");
    }
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage