首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java实现文件的上载并解决文件名乱码有关问题

2012-12-28 
java实现文件的下载并解决文件名乱码问题[sizemedium]response.setContentType(application/octet-strea

java实现文件的下载并解决文件名乱码问题
[size=medium]

response.setContentType("application/octet-stream");     String docBasePath = request.getSession().getServletContext().getRealPath("/").replace("/", File.separator).replace("\", File.separator);    docBasePath = docBasePath.substring(0,docBasePath.length()-1);    String url = (String)request.getAttribute("url");    String docPath = (url).replace("/", File.separator).replace("\", File.separator);    String fileRealName = docPath.substring(docPath.lastIndexOf(File.separator)+1);    String filePath = docBasePath+docPath;    File file = new File(filePath);    List<LawCaseDoc> caseDoc = this.getDocDao().find("from LawCaseDoc caseDoc where caseDoc.url like'%"+fileRealName+"%'");    String fileName = "";    if(caseDoc.size()==0){      fileName = this.getFileDao().find("from SysFile sysFile where sysFile.fileUrl ='%"+fileRealName+"%'").get(0).getFileName();    }else{    fileName = caseDoc.get(0).getName();    }    response.setContentLength((int)file.length());     if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0){        fileName = new String(fileName.getBytes("UTF-8"),"ISO8859-1");//firefox浏览器       }else if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0){        fileName = URLEncoder.encode(fileName,"UTF-8");//IE浏览器       }    response.reset();//如果有换行,对于文本文件没有什么问题,但是对于其它格    response.setHeader("Content-Disposition","attachment;filename="+fileName);    OutputStream out = response.getOutputStream();    FileInputStream fis = new FileInputStream(file);    byte[]b = new byte[1024];    int len = 0;    while((len = fis.read(b))>0){    out.write(b, 0, len);        }    fis.close();    out.flush();    out.close();        //创建file对象 
[/size]

热点排行