java 文件下载 中文名称乱码 解决_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java 文件下载 中文名称乱码 解决

java 文件下载 中文名称乱码 解决

 2013/8/31 19:09:22  vernonchen163  程序员俱乐部  我要评论(0)
  • 摘要:/***下载文件**@paramfilePath*源文件路径*@paramcontentType*文件类型*@paramrequest*@paramresponse*@throwsIOException*/publicstaticvoiddownFile(HttpServletRequestrequest,HttpServletResponseresponse,StringfilePath,StringcontentType)throwsIOException{Filefile=newFile
  • 标签:解决 文件 Java 下载

/**

* 下载文件

*?

* @param filePath

* ? ? ? ? ? ?源文件路径

* @param contentType

* ? ? ? ? ? ?文件类型

* @param request

* @param response

* @throws IOException

*/

public static void downFile(

HttpServletRequest request,

HttpServletResponse response,

String filePath,

String contentType) throws IOException

{

File file = new File(filePath);

if (file.exists()) {

String fileName = file.getName();

byte[] bytes = FileUtils.readFileToByteArray(file);

// response.setContentType("application/x-download");

response.setContentType(contentType);

String agent = request.getHeader("USER-AGENT");// 用户代理

// 防止中文文件名乱码

if (null != agent && -1 != agent.indexOf("MSIE")) {

String codedfilename = StringUtils.replace(URLEncoder.encode(fileName, "UTF-8"), "+", "%20");

response.setHeader("Content-Disposition", "attachment;filename=" + codedfilename);

} else if (null != agent && -1 != agent.indexOf("Mozilla")) {

String codedfilename = MimeUtility.encodeText(fileName, "UTF-8", "B");

response.setHeader("Content-Disposition", "attachment;filename=" + codedfilename);

} else {

response.setHeader("Content-Disposition", "attachment;filename=" + fileName);

}

response.setContentLength(bytes.length);

response.getOutputStream().write(bytes);

}

}

发表评论
用户名: 匿名