在這種情況下,我創建了一個包含搜索結果文件的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 2012-01-11 17:10:09
@Bennie之前完成的:看起來不錯,但是對於用於ZIP文件的「正確的」MIME類型也存在一些混淆,因此您可能需要使用這些值。 – maerics 2012-01-11 17:11:05
好吧,看起來它現在正在工作,至少對於返回文件。儘管這個文件被稱爲「exportZipSearchResults.htm.zip」,但它做了一件奇怪的事情。有沒有內置的方法來改變響應的文件名? – Bennie 2012-01-11 21:44:06