在这种情况下,我创建了一个包含搜索结果文件的 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 文件。如果我之后手动更改文件扩展名,我可以看到文件的内容仍然是我需要的搜索结果。所以问题在于返回正确的响应扩展。
有人对这种情况有什么建议吗?
最佳答案
您需要将Content-Type
响应 header 设置为值application/zip
(或application/octet-stream
,具体取决于目标浏览器)。此外,您可能希望发送额外的响应 header 以指示附件状态和文件名。
关于java - 如何通过响应 OutputStream 将 zip 文件返回给浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8823130/