1

我正在尝试编写一个 servlet 以将文件下载为 zip,它将读取存储库 (CRX) 中的多个节点以获取多个图像的 Inputstream。

我正在使用 ZipOutputStream 下载 zip 文件。但由于不知道压缩后的长度,我无法设置 content-length 标头作为响应,因此浏览器无法显示剩余下载时间。

当前代码:

String[] paths = request.getRequestParameters("path");
ZipOutputStream out = new ZipOutputStream(response.getOutputStream());
for (int i=0; i<paths.length;i++){
    InputStream is = getStream(paths[i]);
    IOUtils.copy(is, out);
    IOUtils.closeQuietly(is);
    out.closeEntry();
}

有没有办法生成 ZipFile 然后写入输出流?

4

0 回答 0