SmartUpload实现文件下载(单个以及批量)

首先需要前台请求后台并向后台发送所要下载的文件名称(可以通过表单或者超链接等)

单个下载:

1)实例化:SmartUpload su=new SmartUpload();

2)初始化:su.initialize(getServletConfig(),request,response);

3)下载:su.download(路径);

这样下载会以默认的方式(浏览器方式)打开,要进行设置

4)设置响应方式(不使用默认方式):su.setContentDisPosition(null);

批量下载:

1):设置响应类型:response.setContentType("application/x-msdownload")

2):设置响应头(下载后文件的名字):response.setHeader("content-Disposition","attachment;filename=test.zip");

3):得到服务器中要下载文件的路径:String path=getServletContext().getRealPath("/")+"文件夹名/";

4):取得前台提交的要下载文件的名字集合:String [] filenames=request.getParameterValues("xx");

5)使用压缩文件流:ZipoutputStream zos=new zipoutputStream(response.getoutputStream());

6):循环文件名,依次读取再写入到输出流当中

for(String filename:filenames){

    File file=new File(path+filename);

    zos.putNextEntry(new  ZipEntry(filename));

    FileInputStream fis=new FileInputStream(file);

    byte []b=new byte[1024];

    int n=0;

    while((n=fis.read(b))!=-1){

    zos.write(b,0,n);

}

zos.flush();

fis.close();

}

zos.flush();

zos.close();

文件上传完毕

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值