[Java Web]服务器获取远程文件并Zip打包给客户端下载
2017-05-18 10:23
2291 查看
一、应用场景
客服端请求下载,服务器B从服务器A中获得远程文件Url,服务器B通过服务器A获取的Url拿到文件后,在服务器B中处理,进行Zip打包,并在客户端中响应给客户端,完成Zip文件下载。
二、思路代码
接下来就是doZip()方法:
这里注意一下,打包为zip我用了两个包
整体,其实还是,使用zip包,对File数组进行处理,将数组中的所用文件循环处理,一起打包为zip。
客服端请求下载,服务器B从服务器A中获得远程文件Url,服务器B通过服务器A获取的Url拿到文件后,在服务器B中处理,进行Zip打包,并在客户端中响应给客户端,完成Zip文件下载。
二、思路代码
File file1 = new File(“这里使用File构造方法实例化File对象”); File file2 = new File(“这里使用File构造方法实例化File对象”); File [] tarFile = {file1,file2};//将多个文件放入File数组 String zipName = doZIP("zipname",tarFile);//这里,我写了一个将多个文件打包为zip的方法doZip(),doZip()返回生成的zip路径 response.setCharacterEncoding("utf-8");//设置编码统一 response.setContentType("multipart/form-data");//设置multipart //响应头部 response.setHeader("Content-disposition", "attachment;filename=order_" + “设置一个文件名” + ".zip"); InputStream inputStreamzip = new FileInputStream(new File(zipName));//通过zip路径实例化inputStream流 OutputStream os = response.getOutputStream(); byte[] b = new byte[2048]; int length; while ((length = inputStreamzip.read(b)) > 0) { os.write(b, 0, length); } os.close(); inputStreamzip.close();
接下来就是doZip()方法:
/*文件打包zip*/ public String doZIP(String zipname, File [] files) throws Exception{ //doZIP(命名的打包文件名,传递过来的File数组) byte[] buffer = new byte[1024]; String strZipName = zipname; ZipOutputStream out = new ZipOutputStream(new FileOutputStream(strZipName)); for(int i=0;i<files.length;i++) { FileInputStream fis = new FileInputStream(files[i]); out.putNextEntry(new ZipEntry(files[i].getName())); int len; //读入需要下载的文件的内容,打包到zip文件 while((len = fis.read(buffer))>0) { out.write(buffer,0,len); } out.closeEntry(); fis.close(); } out.close(); return strZipName; }
这里注意一下,打包为zip我用了两个包
import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream;
整体,其实还是,使用zip包,对File数组进行处理,将数组中的所用文件循环处理,一起打包为zip。
相关文章推荐
- java实现阿里OSS服务器多文件打包ZIP下载,批量下载
- Java多文件下载打包zip返回客户端,不写入本地
- [Java Web]从服务器获取文件并保存(预览)本地客户端
- Java 从服务器上批量打包(zip)下载文件到本地
- java实现服务器文件打包zip并下载的示例(边打包边下载)
- JavaWeb多文件上传及zip打包下载
- Web项目中使用java Struts2实现Zip、xml文件的动态创建和下载(Zip文件中动态存在多个xml文件)
- java web应用文件打包下载
- Java实现文件自动打包成zip并下载的代码
- Java实现远程ssh执行shell脚本对文件打包下载
- Java打包下载ZIP压缩文件
- java 下载文件(web服务器与文件服务器分离)
- java下载远程http地址的图片文件到本地-自动处理图片是否经过服务器gzip压缩的问题
- java下载远程服务器中以中文命名的文件
- Java NIO 服务器与客户端实现文件下载
- java下载远程http地址的图片文件到本地-自动处理图片是否经过服务器gzip压缩的问题
- HTTP获取批量文件打包下载-java(自)
- Java从web服务器下载文件到本地
- spring mvc java 把多文件打包成zip,并下载
- Java Web 学习笔记之一:服务器获取表单上传的文件