servlet下载文件(注意文件名字必须是英文)

直接将代码放在servlet下,把文件名字换成自己要下载的就行
文件要放在WEGCONTEN下

//获得下载文件的名称
  String filename = request.getParameter("filename");
  //要下载的这个文件的类型 -----客户端根据mime类型区分别
  response.setContentType(this.getServletContext().getMimeType(filename));
  //告诉客户端该文件不是直接解析,而是以附件形式打开,注意filename=
  response.setHeader("Content-Disposition", "attachment;filename="+filename);
  
  //获取下载文件的绝对路径(相对于apach而言)
  String path = this.getServletContext().getRealPath("download/"+filename);
  //获取该文件的输入流
  InputStream is = new FileInputStream(path);
  //获取输出流
  ServletOutputStream out = response.getOutputStream();
  //实现文件的拷贝
  int len = 0;
  byte[] bytes = new byte[1024];
  while((len=is.read(bytes))>0) {
   out.write(bytes,0,len);
  }
  is.close();
  //out会自动关闭

猜你喜欢

转载自blog.csdn.net/qq_41683305/article/details/88584559
今日推荐