概述
问题引出:
上传中文命名的图片,下载显示不了中文名称。
如图:
(相关视频教程推荐:java视频教程)
解决方法:
1、sping-mvc.xml部分代码:
<!-- 上传文件的处理器 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置默认编码 解决了上传文件名乱码的问题 -->
<property name="defaultEncoding" value="utf-8"></property>
<!-- 上传图片最大大小5M -->
<property name="maxUploadSize" value="5242440"></property>
</bean>
登录后复制
2、FileController.java中文文件名获取代码:
获取浏览器格式,根据不同浏览器控制文件名编码格式。
String userAgent = request.getHeader("User-Agent");//获取浏览器名(IE/Chome/firefox)
if(userAgent.contains("MSIE")||userAgent.contains("Trident")) {//针对IE或IE为内核的浏览器
fileName=java.net.URLEncoder.encode(fileName,"UTF-8");
}else {
fileName=new String(fileName.getBytes("UTF-8"),"ISO-8859-1");//谷歌控制版本
}
headers.setContentDispositionFormData("attachment", fileName);// 默认下载文件名为原始文件名
登录后复制
其他浏览器控制字符格式:(详细)
String userAgent = request.getHeader("User-Agent");//获取浏览器名(IE/Chome/firefox)
if (userAgent.contains("firefox")) {
fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1"); // firefox浏览器
} else if (userAgent.contains("MSIE")) {
fileName = URLEncoder.encode(fileName, "UTF-8");// IE浏览器
}else if (userAgent.contains("CHROME")) {
fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");// 谷歌
}
headers.setContentDispositionFormData("attachment", fileName);// 默认下载文件名为原始文件名
登录后复制
相关文章教程推荐:java入门教程
以上就是java下载文件中文文件名乱码的详细内容,更多请关注靠谱客其它相关文章!
最后
以上就是飘逸金针菇为你收集整理的java下载文件中文文件名乱码的全部内容,希望文章能够帮你解决java下载文件中文文件名乱码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复