2012-09-05 53 views
0

我只是想上傳使用類型的文件在jsp中的任何文件=,然後嘗試使用Servlet的服務器保存,保存在服務器上的文件類型。在doPost方法無法使用Apache的FileUpload庫

servlet代碼是如下

boolean isMultipart = ServletFileUpload.isMultipartContent(request); 

    System.out.println(" isMultipart ="+isMultipart); 
    if (isMultipart) { 
     FileItemFactory factory = new DiskFileItemFactory(); 
     ServletFileUpload upload = new ServletFileUpload(factory); 

     try { 
      List items = upload.parseRequest(request); 
      Iterator iterator = items.iterator(); 
      while (iterator.hasNext()) { 
       FileItem item = (FileItem) iterator.next(); 
      System.out.println(" inside iterator..is form field"+item.isFormField()); 




       if (!item.isFormField()) { 
        String fileName = item.getName(); 

        System.out.println(" inside nor form field"); 
        String root1 = getServletContext().getRealPath("/"); 

        System.out.println(" server root ="+root1); 
        File path = new File(root + "/uploads"); 
        if (!path.exists()) { 
         boolean status = path.mkdirs(); 

         System.out.println(" inside path doesnt exist"); 
        } // if file path doesnt exists 

        File uploadedFile = new File(path + "/" + fileName); 
        System.out.println(uploadedFile.getAbsolutePath()); 
        item.write(uploadedFile); 
       } // if condition for field not form field but file 
      } // while more files per request 
     } catch (FileUploadException e) { 
      e.printStackTrace(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 


} 

在線路if (!item.isFormField())其不會內部。即使在jsp我已經把正確的enctype如下

<form action="Test" enctype="multipart/form-data" method="post"> 
<label for="fil">Please select file</label> 
<input id="fil" type="file"> 
<input type="submit" name="click" value="click"> 

</form> 

回答

0

得到它解決。把這個名字的屬性如此<input id="fil" type="file" name="file" >後問題解決了。

相關問題