ホームページ >Java >&#&チュートリアル >Spring コントローラーを使用してファイルをストリーミングしてダウンロードするにはどうすればよいですか?

Spring コントローラーを使用してファイルをストリーミングしてダウンロードするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-23 01:34:45313ブラウズ

How to Stream Files for Download Using Spring Controllers?

Spring コントローラーからのファイルのダウンロード

Web サイトから PDF をダウンロードする必要がある場合、次を使用してファイルを動的に生成することを検討するのが一般的です。 FreeMarker と iText などの PDF フレームワークの組み合わせ。ただし、追加のオプションを検討すると、より効率的なソリューションにつながる可能性があります。

効果的なアプローチの 1 つは、Spring コントローラーを利用してファイルのダウンロードを処理することです。これを実現するには、Spring が提供する HttpServletResponse クラスを利用できます。次のコード サンプルは、ファイル ダウンロード用のコントローラーを設定する方法を示しています。

@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");
    }
}

response.getOutputStream() を利用することで、生成された PDF を含むあらゆるデータをクライアントにストリーミングできます。さらに、response.setContentType() を設定することでファイルの種類を指定できます。 PDF の場合は、response.setContentType("application/pdf"); となります。

以上がSpring コントローラーを使用してファイルをストリーミングしてダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。