您的位置:首页 > 运维架构 > Apache

用Apache的commons-fileupload组件上传文件时,普通字段编码出错

2014-07-12 18:54 483 查看
问题现象:

   在Servlet 上用 Apache 的commons-fileupload组件上传文件时,文件可以正确传输,

但Form中的普通文本字段保存到数据库中却显示为乱码(排除了数据库编码的问题)。

原因:

 

  用jsp上传文件时,浏览器采用了另一种编码方式,即 "multipart/form-data",  与普通form不同。

这时表单中的普通文本字段可能没有按encoding进行编码(个人猜测)。

解决方法:

  在servlet 中取得普通文本字段的值时指定Encoding:

 // 取得Form中的所有字段

  List<FileItem> list = (List<FileItem>) upload.parseRequest(request);

  for (FileItem fieldItem : list) {

         if(fieldItem.isFormField()){

            // 普通文本字段  

             String fieldName = fieldItem.getFieldName();

                 String fieldValue = fieldItem.getString("UTF-8")

           }

         else { 

               // 文件字段

                fieldItem.write(new File("filePath", "fileName"));

            }

 }   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: