我正在尝试编写一个servlet来下载zip文件,它将读取存储库(CRX)中的多个节点以获取多个图像的Inputstream。
我正在使用ZipOutputStream下载zip文件。 但由于压缩后的长度未知,我无法设置内容长度标头作为响应,因此浏览器无法显示剩余的下载时间。
当前代码:
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然后写入输出流?