如果表单使用enctype="multipart/form-data"方式提交,
那么一般的request.getParameter(arg0)方法是无法获取Form参数的,
思考ing,
发现使用apache的common-fileupload组件可以获取,
- DiskFileUpload upload = new DiskFileUpload();
- upload.setHeaderEncoding("UTF-8");
- try {
- List items = upload.parseRequest(request);
- Iterator iter = items.iterator();
- while (iter.hasNext()) {
- FileItem item = (FileItem) iter.next();
- if (item.isFormField()) {
- //参数名
- item.getFieldName();
- //参数值
- item.getString("UTF-8");
- }
- }
- }catch (Exception ex) {
- }
String fieldValue = "";
DiskFileUpload uploadParm = new DiskFileUpload();
uploadParm.setHeaderEncoding("UTF-8");
try {
List items = uploadParm.parseRequest(request);
Iterator iterator = items.iterator();
while (iterator.hasNext()) {
FileItem fileItem = (FileItem) iterator.next();
if (fileItem.isFormField()) {
//参数名
if("fileRowId".equals(fileItem.getFieldName())){
//参数值
fieldValue = fileItem.getString("UTF-8");
break;
}
}
}
}catch (Exception ex) {
}
注意,如果不能使用item.getString(),然后自行转换编码,
这样会出现乱码的,
new String(item.getString().getBytes(),"UTF-8")
这样会出现乱码
试了很多方法,这是目前发现唯一能解决乱码问题的方法