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

标签 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());

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

有人对这种情况有什么建议吗?

最佳答案

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

关于java - 如何通过响应 OutputStream 将 zip 文件返回给浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8823130/

相关文章:

java - Facebook API 不返回电子邮件

java - 异常 : "Missing class indicator field from database row [UnmarshalRecordImpl()]." when unmarshalling XML using EclipseLink JAXB (MOXy)

python - 如何将 zip 文件发送到前端以在 DRF 中下载

java - 将大文件作为流发送到 process.getOutputStream

java - 编译opencv时出现"cannot find symbol"

java - getElementById 出现空指针异常

python - 如何模拟 zip 文件

zip - 将 Poco Zip 压缩流式传输到 Poco HTTPServerResponse

java - OutputStream 类用于写入文件。这怎么可能?

Java OutputStream.write() 抛出错误的文件描述符,但刷新有效