文件下载的文件名中文和空格处理
2013-05-21 19:18
363 查看
今天遇到一个问题,文件下载,如果有空格,浏览器下载的时候会丢失文件名 - -。
之前下载的代码:
Google之下,什么解决方案的都有。比如把文件名utf8加密(URLEncode),然后把“+”替换成%20,测试之后没用!
然后转成英文搜索,在stackoverflow发现一个方案。
这样确实很好用 - -. 记录下...以免别人以后找不到答案...
注意:fileName最后被双引号("")包起来了...
另外,文件名乱码的问题,看代码就好了,fileName被转码了一次。。。
之前下载的代码:
@RequestMapping("download") public void downloadFile(long fileId, HttpServletResponse response){ AttachedFile attachedFile = attachedFileManager.getFile(fileId); String filePath = UPLOAD_PATH + File.separatorChar + attachedFile.getWebAccessPath(); String fileName = null; try { fileName = new String((attachedFile.getFileName()).getBytes("UTF-8"), "iso8859-1"); response.reset(); response.setHeader("Content-Disposition", "attachment;filename="+ fileName);// 指定下载的文件名 response.setContentType("application/octet-stream; charset=UTF-8"); //response.setContentType("application/vnd.ms-excel"); response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); InputStream is = new FileInputStream(filePath); OutputStream os = response.getOutputStream(); byte[] b = new byte[1024]; int length; while((length = is.read(b)) > 0) { os.write(b, 0, length); } is.close(); } catch (Exception e) { e.printStackTrace(); } }
Google之下,什么解决方案的都有。比如把文件名utf8加密(URLEncode),然后把“+”替换成%20,测试之后没用!
然后转成英文搜索,在stackoverflow发现一个方案。
response.setHeader("Content-Disposition","attachment; filename=\"" + filename + "\"");
这样确实很好用 - -. 记录下...以免别人以后找不到答案...
注意:fileName最后被双引号("")包起来了...
另外,文件名乱码的问题,看代码就好了,fileName被转码了一次。。。
相关文章推荐
- php浏览器下载文件 文件名 空格 中文 处理
- 文件下载,文件名有中文及空格无法显示问题
- php文件下载时遇到中文文件名的处理方法
- Java文件下载处理中文名(使用URLEncoder编码及空格变+解决)
- struts2 文件下载文件名中文乱码及变成空格问题
- Java strtus2文件下载不同浏览器文件名中文乱码处理
- 正确处理下载文件时中文文件名乱码的问题(Content-Disposition)
- HTTP 文件下载时中文文件名乱码问题处理
- 【转】彻底解决Asp.net文件下载(Response.WriteFile)时文件名的中文乱码和空格异常问题
- java下载文件,中文文件名乱码特殊处理
- java web应用文件下载(包括中文文件名乱码处理)
- Android 关于带有中文字样以及空格文件名的文件上传及下载
- 如何处理在下载文件时,中文的文件名传输
- struts2文件下载的时候,处理中文文件名的问题
- java web应用文件下载(包括中文文件名乱码处理
- 解决Asp.net 实现文件下载时、输出文件时文件名的中文乱码和空格异常
- 彻底解决Asp.net 文件下载时文件名的中文乱码和空格异常全球性技术难题
- 火狐浏览器下载文件中文乱码,文件名中的空格变加号("+")的问题
- Java下载文件时处理中文 使用URLEncoder编码后 空格变+号的问题
- 彻底解决Asp.net 文件下载时文件名的中文乱码和空格异常全球性技术难题