jsp实现文件下载与中文文件名乱码问题解决

来源:互联网 发布:网络平台售卖药品资质 编辑:程序博客网 时间:2024/04/27 22:41
download.jsp下载页面
<%response.setContentType("APPLICATION/OCTET-STREAM"); %><jsp:directive.page import="java.io.File"/><%  //注意:“%><” 这些代码之间一定不能留空隙,否则下载文件乱码。 String sFileName = request.getParameter("FileName"); String sDownName = request.getParameter("DownName"); //得到服务器绝对路径 String pathString = (String)request.getSession().getServletContext().getRealPath(File.separator+"protect"); 
 String sFilePath = ""; sFilePath = pathString+File.separator; sDownName =new String(sDownName.getBytes("iso8859-1"),"gb2312");//关键是这句,否则会出现下载文件名称乱码 response.setContentType("application/x-msdownload"); response.setHeader("Content-disposition","attachment; filename="+new String(sDownName.getBytes("gb2312"),"iso8859-1"));// 打开指定文件的流信息  java.io.FileInputStream fileInputStream = null;  try{  fileInputStream = new java.io.FileInputStream(sFilePath+sFileName);  // 写出流信息   byte buffer[] = new byte[65000];  int i;   while( (i=fileInputStream.read(buffer, 0, 65000))!=-1 ) {    response.getOutputStream().write(buffer, 0, i);  }   out.flush();  out.close(); }catch(Exception ex){  ex.printStackTrace(); }finally{  if(fileInputStream!=null){fileInputStream.close();  } }%>  
原创粉丝点击