//test.jsp
 <form action="<%=basePath%>test" method="post" ENCTYPE="multipart/form-data">
    图片名:<input name="name" type="text"><br>
    图片1:<input type="file" name="pic1"><br>
    图片2:<input type="file" name="pic2"><br>
    <input type="submit" value="提交">
    </form>//TestUploadServlet部分代码
DiskFileUpload upload = new DiskFileUpload();
try {
List items = upload.parseRequest(request);
Map fields = new HashMap();
Iterator iter = items.iterator();
while(iter.hasNext()){
FileItem item = (FileItem)iter.next();
if(item.isFormField())
fields.put(item.getFieldName(), item.toString());
else
fields.put(item.getFieldName(), item);
}
FileItem  name = (FileItem) fields.get("name");
System.out.println(name);
FileItem uplFile1 = (FileItem)fields.get("pic1");
String pic1 = uplFile1.getFieldName();
FileItem uplFile2 = (FileItem)fields.get("pic2");
String pic2 = uplFile2.getFieldName();
System.out.println("name:"+name+"  pic1:"+pic1+"  pic2:"+pic2);
我想把pic1和pic2的文件名分别写到数据库的pic1和pic2字段内容里,请教各位大虾如何处理?

解决方案 »

  1.   

    谢谢楼上两位大虾的指导,但我运行时出现如下错误:java.lang.NullPointerException: No FileItemFactory has been set.
    org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:353)
    org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:310)
    com.gzmoblie.servlet.UploadPicServlet.doPost(UploadPicServlet.java:40)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)源代码如下:<form action=" <%=basePath%>test" method="post" enctype="multipart/form-data"> 
        图片名: <input name="name" type="text"> <br> 
        图片1: <input type="file" name="pic1"> <br> 
        图片2: <input type="file" name="pic2"> <br> 
        <input type="submit" value="提交"> 
        </form> public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    FileUpload upload = new FileUpload();
    upload.setSizeMax(10000000);

    try {
    List items = upload.parseRequest(request);
    Map fields=new HashMap();

    Iterator iter = items.iterator();
    while (iter.hasNext()) {
        FileItem item = (FileItem) iter.next();
        if (item.isFormField())
         fields.put(item.getFieldName(),item.getString());
        else
         fields.put(item.getFieldName(),item);
        FileItem pic1 = (FileItem)fields.get("pic1");
        FileItem pic2 = (FileItem)fields.get("pic2");
        String name = (String) fields.get("name");
        System.out.println(name+pic1+pic2);
        try {
    item.write(new File("f:/"+pic1.getName()));
    item.write(new File("f:/"+pic2.getName()));
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    } catch (FileUploadException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
      

  2.   

    你现在的问题是出现空指针异常啊,估计是你的代码没有写好啊,去网上搜一下用fileupload上传文件!