gpt4 book ai didi

java - 如何将zip文件写入httpresponse

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:51:49 24 4
gpt4 key购买 nike

我已经创建了 zip 文件 (sample.zip),其中有些文件没有问题。当我打开 sample.zip 时,它包含预期的文件。

我想将该 zip 文件放入 http 响应中。目前我正在使用以下内容:

        response.setContentType("application/zip");
response.addHeader("Content-Disposition", "attachment; filename="+"sampleZip.zip");
response.setContentLength(2048);
response.setHeader("Set-Cookie", "fileDownload=true; path=/");
FileInputStream fileInputStream = new FileInputStream("sample.zip");
OutputStream responseOutputStream = response.getOutputStream();
int bytes;
while ((bytes = fileInputStream.read()) != -1) {
responseOutputStream.write(bytes);
}
response.flushBuffer();

现在它在我的浏览器默认下载位置下载 zip 文件。但是当我打开那个 zip 文件时它显示

Cannot open file: it does not appear to be valid archive

请帮我解决这个问题。

最佳答案

我觉得这段代码不错。但是您正在设置默认的内容长度,这可能是问题所在。创建 File 实例并使用 file.length() 方法设置内容长度并为输入流使用相同的文件。逐字节读取也不是一个好主意。如果可能,使用 apache 的 IOUtils.copy() 将数据从输入流复制到 ServletOutputStream。

关于java - 如何将zip文件写入httpresponse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17492677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com