在上傳文件用了commons fileupload組件的情況下,servlet接收的數據只能是type=file表單元素類型,那么獲取type=text類型,就可以使用parseRequest(request)來獲取list,fileitem,判斷isFormField,為true非file類型的。就可以處理了。下面是處理的部分代碼:
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024*1024);
String dirtemp = "c:";
File filedir = new File(dirtemp + "filetemp");
String str = null;
if (!filedir.exists())
filedir.mkdir();
factory.setRepository(filedir);
ServletFileUpload upload = new ServletFileUpload(factory);
List list=upload.parseRequest(request);
for(int i=0;i<list.size();i++)
{
FileItem item = (FileItem)list.get(i);
if(item.isFormField()){
System.out.println(item.getString());
}else{
String filename = item.getName();
item.write(new File(request.getRealPath(dir),filename));
}
}
另外就是,在屬性為multipart/form-data的form中別放type為text的input項目