日期:2014-05-18  浏览次数:20757 次

commons fileupload 文件上传乱码问题
a.html  
<form   name= "uploadform "   method= "POST "   action= "save.jsp "   ENCTYPE= "multipart/form-data ">
文件: <input   name= "file1 "   size= "40 "   type= "file ">
</form>

save.jsp
request.setCharacterEncoding( "utf-8 ");
//   依次处理每个上传的文件
  Iterator   iter   =   fileItems.iterator();
  while   (iter.hasNext())   {
    FileItem   item   =   (FileItem)   iter.next();
    //忽略其他不是文件域的所有表单信息
    if   (!item.isFormField())   {
      String   name   =   item.getName();
      long   size   =   item.getSize();
      if((name==null||name.equals( " "))   &&   size==0)
      continue;
name   =   new   String(name.getBytes(), "utf-8 ");  

上面只贴比较核心点的代码,页面编码均为utf-8,save.jsp中最后一句转换后,如果文件名中有偶数汉字则正常,若奇数则最后1个会出现乱码情况,请有经验的XD指点一下,谢谢。(只用这两个页面实现)

------解决方案--------------------
判断一下奇偶数吧,如果奇数就加上一个字,然后再去掉。不知道为什么会这样。