下面一段代码给大家分享JavaWeb实现压缩多个文件并下载功能,具体代码如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
//文件名称 String[] names={ "one.jpg" , "two.jpg" , "three.jpg" , "four.jpg" }; //四个文件流 FileInputStream input1 = new FileInputStream( new File( "文件路径" )); FileInputStream input2 = new FileInputStream( new File( "文件路径" )); FileInputStream input3 = new FileInputStream( new File( "文件路径" )); FileInputStream input4 = new FileInputStream( new File( "文件路径" )); FileInputStream[] inputs={input1,input2,input3,input4}; //ZIP打包图片 File zipFile = new File( "压缩文件存放路径" ); byte [] buf = new byte [ 1024 ]; int len; ZipOutputStream zout= new ZipOutputStream( new FileOutputStream(zipFile)); for ( int i = 0 ; i < inputs.length; i++) { FileInputStream in =inputs[i]; zout.putNextEntry( new ZipEntry(names[i])); while ((len = in.read(buf)) > 0 ) { zout.write(buf, 0 , len); } zout.closeEntry(); in.close(); } zout.close(); //下载图片 FileInputStream zipInput = new FileInputStream(zipFile); OutputStream out = response.getOutputStream(); response.setContentType( "application/octet-stream" ); response.setHeader( "Content-Disposition" , "attachment; filename=images.zip" ); while ((len=zipInput.read(buf))!= - 1 ){ out.write(buf, 0 ,len); } zipInput.close(); out.flush(); out.close(); //删除压缩包 zipFile.delete(); |
总结
以上所述是小编给大家介绍的JavaWeb实现压缩多个文件并下载实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://www.cnblogs.com/yzjSince92/p/6282869.html