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组件解决文件上传(文件名)乱码问题的更多相关文章

  1. Java使用POM一JAR包的形式管理JavaScript文件-WebJars

    说明:原来JS框架还可以使用POM进行管理的.WebJars是一个很神奇的东西,可以让大家以JAR包的形式来使用前端的各种框架.组件. 什么是WebJars 什么是WebJars?WebJars是将客 ...

  2. 新手入门:java文件转成jar包再转成exe文件——图文教程

    [本文简介] 由于课程设计的原因,研究着如何把java 程序转成exe,最终成功了,现在把过程记录分享一下. 本文将介绍如何把一个跑在eclipse的java应用,导出成jar文件,再变成exe可执行 ...

  3. Maven第四篇【私有仓库、上传jar包、引用私服jar包、上传本地项目到私服】

    搭建私有服务器 前面已经说过了,我们使用Maven的使用,如果需要导入相对应的jar包,Maven首先会在我们的本地仓库中寻找->私有仓库->中心仓库- 然而,我们的本地仓库常常没有想要的 ...

  4. Java Web文件上传原理分析(不借助开源fileupload上传jar包)

    Java Web文件上传原理分析(不借助开源fileupload上传jar包) 博客分类: Java Web   最近在面试IBM时,面试官突然问到:如果让你自己实现一个文件上传,你的代码要如何写,不 ...

  5. 上传文件出错:org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly

    最近做一个web项目中有上传文件的功能,已经写出并在本地和部署到服务器上测试了好几个文件上传都没问题(我用的是tomcat).后来又上传了一个700多K的文件(前边的都是不足600K的,并且这个wor ...

  6. 使用 fileupload 组件完成文件的上传应用

    1. 使用 fileupload 组件完成文件的上传应用 commons-dbutils-1.3.jarcommons-fileupload-1.2.1.jar 1). 需求: > 在 uplo ...

  7. java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

    java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...

  8. Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参

    Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参 一.打包 情况1:不需要向程序传参数,并且程序没有使用第三方jar包 Eclipse上导出jar: 然后选择一个java文件作为入 ...

  9. Java如何快速修改Jar包里的文件内容

    需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件, ...

  10. 实测Maven上传jar包到私服的方法归纳

    Hello,各位小伙伴大家好,我是小栈君.好久不见,最近因为工作的缘故,导致了更新变慢,但是小栈君也在积极的做素材的规划,毕竟学习知识点的归纳和提炼需要一定的时间. 所以还请大家多多见谅,下一期的分享 ...

随机推荐

  1. css3组件之几何图形

    一.平行四边形 1.实心无边框 #parallelogram { width: 150px; height: 100px; -webkit-transform: skew(20deg); -moz-t ...

  2. LR逻辑回归文章

    http://blog.csdn.net/suipingsp/article/details/41822313

  3. MySQL firstmatch strategy

    在探讨subquery如 x IN (SELECT XX FROM TABLE)这样的形式的MATCH策略时,不是很清楚实现过程.在网上搜了一下, 地址:http://stackoverflow.co ...

  4. curl get请求添加header头信息

    function get($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPGET, true); curl_setopt($ch, CU ...

  5. React生命周期函数详解

    React生命周期函数 生命周期函数是指在某一个周期自动执行的函数. React中的生命周期执行过程 以下是React中的常用的生命周期函数,按个部分中按照自动执行顺序列出,这几个过程可能存在同时进行 ...

  6. URAL Palindromic Contest

    A. Non-palidromic cutting 考虑无解的情形:只能是形如$aaaaa$.$aaabaaa$.$abababa$这三种情况. 有解时,对于最小划分,答案必定是$1$或者$2$,判断 ...

  7. 限制标题字符串的长度,超过长度的截取并加上"..."

    /// <summary> /// 限制标题字符串的长度,超过长度的截取并加上"..." /// </summary> /// <param name ...

  8. 小甲鱼python第二讲课后习题

    0.什么是BIF BIF为内置函数,英语全称为Build-in-Function Python3用input()取代了Python2的raw_input(),接收用户输入 1.用课堂上小甲鱼教的方法数 ...

  9. Linux之整理bash命令类型

    作业四:整理bash命令类型,验证寻找一个命令的优先级 类型 ==> alias ==> Compound Commands ==> function ==> build_in ...

  10. GMA Round 1 极坐标的忧伤

    传送门 极坐标的忧伤 为什么你们不喜欢为我求导……——极坐标 极坐标的心意,想必已经传达到了,那么请为极坐标方程$r=t$(也写作$ρ=θ$)求导吧. 为了考验你的忠诚,你需要回答$r=t$在(0,$ ...