このような状況では、検索結果ファイルを含むzipファイルを作成し、そのファイルをユーザーに送信しようとしています。ここで私が現在使っているコードの塊です。応答ファイルOutputStreamを使用してzipファイルをブラウザに返すにはどうすればよいですか?
File[] zippable = new File[files.size()];
File resultFile = ZipCreator.zip(files.toArray(zippable), results);
InputStream result = new FileInputStream(resultFile);
IOUtils.copy(result, response.getOutputStream());
ただし、現在のところこれは正しく機能しません。私が作成したzipファイルを返すのではなく、htmlファイルを返します。後で手動でファイル拡張子を変更すると、ファイルの内容が依然として必要な検索結果であることがわかります。だから、問題はちょうど応答に適切な拡張を返すことにあります。
誰もがこのような状況について助言していますか?
私はここであなたを誤解しているかもしれないと思う。私はコードに行を追加したので、 'response.setHeader(" Content-Type "、" application/zip ");' はまだ成功していません。この呼び出しは、IOUtils.copy – Bennie
@Bennieの呼び出しの直前に行われています。正常ですが、ZIPファイルに使用する「正しい」MIMEタイプについては混乱があります。 。 – maerics
さて、少なくとも、ファイルを返すために、今は動作しているようです。それは、ファイルが "exportZipSearchResults.htm.zip"と呼ばれているところで、奇妙なことです。応答のファイル名を変更する組み込みの方法はありますか? – Bennie