<J2EE>文件的下载DownLoad
<J2EE>文件的下载DownLoad
未来守护者 发表于3年前
<J2EE>文件的下载DownLoad
  • 发表于 3年前
  • 阅读 13
  • 收藏 0
  • 点赞 0
  • 评论 0

华为云·免费上云实践>>>   

摘要: 使用输入流,输出流对文件进行传输。
public void downLoad(HttpResponse response){
   //设置文件接受时候的名称和文件类型
  response.setHeader("Content-Disposition", "attachment;filename=adobe.rar");
   //设置网页在客户端的打开方式
  response.setContentType("Content-Type", "application/x-download");
   //获取当前应用的servletContext
  ServletContext sc=this.getServletContext();
  //获取Test.rar的在应用中的真是路径
  String filePath=sc.getRealPath("Test.rar");
  //获取输入流
    InputStream is=new InputStream(filePath);
   //获取输出流
     OutputStream os=response.getOutputStream();
  //用来记录read返回值,以判断文件是否已经读到了末尾
  len=-1;
  //每次读出一个1024byte字节数组大小的数据进行传输
  byte [] b=new byte[1024];
  //开始读写数据
  while((len=is.read(b))!=-1){
    //将读出数据写入客户端
    os.write(b,0,len);
  }
  is.close();
  os.flush();
  os.close();
}

如果上面的存储时候的文件为中文名称的时候需要对其进行转码,转码方法如下:

response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode("梦想.rar", "UTF-8"));// 中文文件名此处要进行URL编码


共有 人打赏支持
粉丝 10
博文 77
码字总数 22502
×
未来守护者
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: