【java】[文件上传jar包]commons-fileUpload组件解决文件上传(文件名)乱码问题
response.setContentType("text/html; charset=UTF-8");
Boolean isMultipart = ServletFileUpload.isMultipartContent(request);
PrintWriter out = response.getWriter();
if (isMultipart) {
FileItemFactory fileItemFactory = new DiskFileItemFactory();
ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory);
servletFileUpload.setHeaderEncoding("UTF-8");//解决http报头乱码,即中文文件名乱码
try {
List<FileItem> list = servletFileUpload.parseRequest(request);
for (Iterator<FileItem> iter = list.iterator(); iter.hasNext();) {
FileItem item = iter.next();
if (item.isFormField()) {
out.println(item.getFieldName());
out.println("<br/>");
out.println("<br/>");
out.println(item.getString("UTF-8")); //解决表单输入输乱码。
}
else{
out.println(item.getFieldName());
out.println(item.getName());
}
}
} catch (Exception e) {
//throw new BusinessException(" 出现文件上传错误。 ");
System.out.println(" 出现文件上传错误。 ");
}
}
这几天,做一个东西需要上传图片和视频,于是就用commons-fileupload做为上传组件,写了个上传的servlet,但是在实际上传测试的时候,发现中文的表单值和中文的文件名都是乱码.
于是上网查了一下,几位前辈也总结了这个问题,但是具体的情况不同,现把自己遇到这个问题的最后解决方法写下来,以备后用.
1.由于我的页面是utf-8的编码,因此写了个过滤器,对所有的request请求使用utf-8编码
2.然后在上传的servlet中取得request的编码格式,
String encoding=request.getCharacterEncoding();
3,解决上传文件的路径乱码设置,如下
FileItemFactory fif=new DiskFileItemFactory();
ServletFileUpload sfu=new ServletFileUpload(fif);
sfu.setHeaderEncoding(encoding);//这里是设置编码的
4.解决表单域字段的值的乱码,如下
item.getString(encoding);
经过这几个步骤以后,就可以解决中文乱码的问题,至于文中提到的过滤器,
还有具体的上传的细节代码,可以从tomcat的例子,commons-fileupload的文档中获得信息.
【java】[文件上传jar包]commons-fileUpload组件解决文件上传(文件名)乱码问题的更多相关文章
- Java使用POM一JAR包的形式管理JavaScript文件-WebJars
说明:原来JS框架还可以使用POM进行管理的.WebJars是一个很神奇的东西,可以让大家以JAR包的形式来使用前端的各种框架.组件. 什么是WebJars 什么是WebJars?WebJars是将客 ...
- 新手入门:java文件转成jar包再转成exe文件——图文教程
[本文简介] 由于课程设计的原因,研究着如何把java 程序转成exe,最终成功了,现在把过程记录分享一下. 本文将介绍如何把一个跑在eclipse的java应用,导出成jar文件,再变成exe可执行 ...
- Maven第四篇【私有仓库、上传jar包、引用私服jar包、上传本地项目到私服】
搭建私有服务器 前面已经说过了,我们使用Maven的使用,如果需要导入相对应的jar包,Maven首先会在我们的本地仓库中寻找->私有仓库->中心仓库- 然而,我们的本地仓库常常没有想要的 ...
- Java Web文件上传原理分析(不借助开源fileupload上传jar包)
Java Web文件上传原理分析(不借助开源fileupload上传jar包) 博客分类: Java Web 最近在面试IBM时,面试官突然问到:如果让你自己实现一个文件上传,你的代码要如何写,不 ...
- 上传文件出错:org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly
最近做一个web项目中有上传文件的功能,已经写出并在本地和部署到服务器上测试了好几个文件上传都没问题(我用的是tomcat).后来又上传了一个700多K的文件(前边的都是不足600K的,并且这个wor ...
- 使用 fileupload 组件完成文件的上传应用
1. 使用 fileupload 组件完成文件的上传应用 commons-dbutils-1.3.jarcommons-fileupload-1.2.1.jar 1). 需求: > 在 uplo ...
- java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)
java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...
- Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参
Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参 一.打包 情况1:不需要向程序传参数,并且程序没有使用第三方jar包 Eclipse上导出jar: 然后选择一个java文件作为入 ...
- Java如何快速修改Jar包里的文件内容
需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件, ...
- 实测Maven上传jar包到私服的方法归纳
Hello,各位小伙伴大家好,我是小栈君.好久不见,最近因为工作的缘故,导致了更新变慢,但是小栈君也在积极的做素材的规划,毕竟学习知识点的归纳和提炼需要一定的时间. 所以还请大家多多见谅,下一期的分享 ...
随机推荐
- node安装及配置之windows版
一.下载地址 https://nodejs.org/zh-cn/download/ https://nodejs.org/zh-cn/download/releases/ 二.安装步骤 1.双击“no ...
- F5-VM
如果找不到的话,点击下面的链接.链接包含物理主机镜像和虚机主机镜像,选择virtual Edition. BIG-IP v11.x / Virtual Edition https://download ...
- 牛客国庆集训派对Day4.B.异或求和(按位统计)
题目链接 刷牛客一战到底做到的,感觉还挺有趣... \(Description\) 求给定\(n\)及序列\(A_i\),求\[\sum_{i\lt j\lt k}(A_i\oplus A_j)(A_ ...
- 潭州课堂25班:Ph201805201 django 项目 第四十一课 后台 轮播图管理功能讲解,文档管理功能 实现 (课堂笔记)
在进入轮播图管理页面时,要把轮播图显示在页面上,所以后台要向前台返回: 图片路由,:image_url 优先级: priority def get(self, request): # priority ...
- mongodb副本集与分片结合
1.在三个不同服务器上,分别建立副本集: 202服务器: 192.8.123.202:27017 replSet = r202 192.8.123.202:27018 replSet = r202 1 ...
- Hass.io: add-on Configurator
{ "username": "admin", "password": "admin", "cert ...
- 更换本地Git全局账户命令
git config --global user.name gstok git config --global user.email @qq.com
- Android Studio 解决ADB检测不到手机导致无法连接的问题
ADB的全称是Android Debug Bridge,是用来管理模拟器和真机的通用调试工具. 开USB调试 方法:手机设置 - 开发人员选项 - USB调试 - 勾选(开发者调试被隐藏了,在关于手机 ...
- oracle报错ORA-01653 dba_free_space中没有该表空间
新建了一个表空间t101,在dba_tablespaces和dba_data_files都出现了,在dba_free_space却没有,这个很有可能是表空间满了. 插入数据会报错:ORA-01653: ...
- 微信小程序-图片预览
仅供参考: 1,wxml: <view class="foot" bindtap="previewImage">我的小程序码</view> ...