选择了名为commons fileupload的上传组件
但是,不仅是文件名的中文乱码,还有非文件的表单域的乱码
So :
创建//1_diskfiletemfactory对象设置时,文件大小diskfileitemfactoryfactory=newdiskfileitemfactory (); factory.setsize threshold (1024 * 1024 * 200 ); //最多200 m//2_允许创建servletfileuploaduploaduploadservletfileuploadupload=newservletfileupload (factory ); //用于处理上载文件的路径是upload.setheaderencoding(utf-8 ); 因为//3_form表单设置了enctype='multipart/form-data '属性//,所以upload将解析request,并分析集合FileItem//FileItem表示什么该工具将请求主体中每个分隔线中央的内容封装到一个FileItem对象listfile item list=upload.parse request (request )中。 //4_遍历集合for(FileItemitem3360list ) /以及获取的fileitem的下一个转码方案//new string (item.getstring (' utf-8 ' ) ) //upload.setheader编码(utf-8 ) )对齐; String name=item.getFieldName (; //表单名称string value=new string (item.getstring (' utf-8 ' ) ); //表格内容乱码(一、解决上传文件路径乱码问题:
servletfileuploadupload=newservletfileupload (factory;
//处理上传文件的路径用中文乱码
upload.setheader encoding (" utf-8 " )
二、解决表格栏位中文乱码:
new string (item.getstring“utf-8”);
例如,表格之一:
string value=new string (item.getstring ) (“utf-8”)
接下来类推。