大家帮我看看 冗余的代码就不贴了UploadJsp.jsp:<form action="UploadServlet" method="post" enctype="multipart/form-data">
<input type="file"><input type="text"><input type="submit" value="submit">
</form>
UploadServlet.java:
public class UploadServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {//  Check that we have a file upload request
boolean isMultipart = FileUploadBase.isMultipartContent(request);
PrintWriter pw = response.getWriter();
pw.println(isMultipart);

//  Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();//  Set factory constraints

factory.setSizeThreshold(1024);
File file = new File("e:\\temp");

factory.setRepository(file);

//  Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
//  Set overall request size constraint
upload.setSizeMax(1024*1024);

try{
pw.println("parsing...");
//  Parse the request
List items = upload.parseRequest(request);
//问题点==================================================
//items里面是空的  (上传的时候有选文件)
//========================================================
pw.println("parse over");
Iterator iter = items.iterator();
pw.println(iter.hasNext());
while(iter.hasNext()){
FileItem item = (FileItem)iter.next();

//  Process a regular form field
if(item.isFormField ()){
String name = item.getFieldName();
String value = item.getString();
}else{
String fieldName = item.getFieldName();
String fileName = item.getName();
String contentType = item.getContentType();
boolean isInMemory = item.isInMemory();
long sizeInBytes = item.getSize();
pw.println(fieldName);
pw.println(fileName);
pw.println(contentType);
pw.println(isInMemory);
pw.println(sizeInBytes);

}
}
}catch(FileUploadException e){
e.printStackTrace();
}catch(Exception ex){
ex.printStackTrace();
}
}
}

解决方案 »

  1.   

    你应该在<input>里加上name属性.
      

  2.   

    修改后出现异常:
    exception javax.servlet.ServletException: Servlet execution threw an exception
    root cause java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
    org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:179)
    org.apache.commons.fileupload.FileUploadBase.createItem(FileUploadBase.java:500)
    org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:367)
    org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:116)
    ServletTest.UploadServlet.doPost(UploadServlet.java:59)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)不太明白是什么问题,望赐教
      

  3.   

    NoClassDefFoundError: 缺少jar文件,去下一个apache commons-io