文件下载核心代码

  

 将这段代码进行封装后,便可以做成自己需要的下载方法了。此段代码需要注意设置

相关的响应头。比如编码、类型等。文件下载也是操作的流,所以要记得关闭。

  String filePath=this.getServletContext().getRealPath("image")+
   File.separator+"screen.jpeg";
   System.out.println("文件路径"+filePath);
   InputStream is=new FileInputStream(filePath);
   //文件内容大小
         int length=is.available();  
   response.setCharacterEncoding("UTF-8");
      response.setContentType("application/force-download");
      //用户下载时所看到的文件名
      String filename="screen.jpg";
      //防止文件名出现乱码,所以加入下行代码
      filename = URLEncoder.encode(filename,"UTF-8");         //防止标题出现乱码问题
       /*设置head表头*/
      response.setHeader("Content-Length",String.valueOf(length));
      response.setHeader("Content-Disposition",
        "attachment;filename=/""+filename +"/"");

  OutputStream out= response.getOutputStream();
  byte buffer[]= new byte[2048];
  int len=0;
  while((len=is.read(buffer))!=-1){
   //out.writ
   out.write(buffer, 0, len);
  }
  is.close();
  out.flush();
  out.close();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值