Java 将ZipoutStream返回到浏览器
我有一个ZipoutStream要返回到浏览器。我想要的体验是,用户单击一个锚标记,然后为我拥有的ZipOutputStream显示一个文件下载提示Java 将ZipoutStream返回到浏览器,java,html,http,zip,Java,Html,Http,Zip,我有一个ZipoutStream要返回到浏览器。我想要的体验是,用户单击一个锚标记,然后为我拥有的ZipOutputStream显示一个文件下载提示 如何将ZipOutputStream返回到浏览器?昨天也做了同样的事情 ByteArrayOutputStream baos = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(baos); .... populate ZipOu
如何将ZipOutputStream返回到浏览器?昨天也做了同样的事情
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zip = new ZipOutputStream(baos);
.... populate ZipOutputStream
String filename = "out.zip";
// the response variable is just a standard HttpServletResponse
response.setHeader("Content-Disposition","attachment; filename=\"" + filename + "\"");
response.setContentType("application/zip");
try{
response.getOutputStream().write(baos.toByteArray());
response.flushBuffer();
}
catch (IOException e){
e.printStackTrace();
}
finally{
baos.close();
}
注意,我使用的是ByteArrayOutputStream包装器和toByteArray,但您可能只需要使用标准的InputStream.read()Outputstream.write()循环将任何其他类型的Outputstream直接写入响应
一开始,我实际上不确定哪种方法更快,但我怀疑我在这里使用ByteArrayOutputStream可能不是最注重记忆的方法: