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

Spring コントローラーを使用して動的に生成されたファイルをダウンロードするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-23 13:16:23
オリジナル
971 人が閲覧しました

How to Download Files Generated Dynamically Using Spring Controllers?

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

多くのアプリケーションでは、Web サイトからファイルをダウンロードする必要があります。場合によっては、これらのファイルは、Freemarker などのフレームワークや iText などの PDF 生成ライブラリを使用して動的に生成されます。ただし、これにより、ユーザーが 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");
    }

}
ログイン後にコピー

出力ストリームにアクセスできるようになると、PDF ジェネレーターによって生成された PDF の宛先として使用できます。さらに、Content-Type を「application/pdf」に設定すると、ブラウザーに正しいファイル タイプを指定できます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート