如何通过响应OutputStream将zip文件返回到浏览器?

Ben*_*nie 6 java 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());
Run Code Online (Sandbox Code Playgroud)

但是,这目前无法正常工作.它不返回我创建的zip文件,而是返回一个html文件.如果我之后手动更改文件扩展名,我可以看到该文件的内容仍然是我需要的搜索结果.所以问题只在于返回响应的正确扩展.

有没有人对这种情况有任何建议?

mae*_*ics 8

您需要将Content-Type响应标头设置为值application/zip(或者application/octet-stream,取决于目标浏览器).此外,您可能希望发送指示附件状态和文件名的其他响应标头.