2013-02-18 27 views
4

我想提供上傳多個文件的方法,只需點擊上傳按鈕一次。我可以使用多部分發送文件嗎?如果是,那麼如何?使用單個servlet請求上傳多個文件

P.S .:我不想一次使用閃存或發送一個文件。

回答

7

希望這有助於...

//JSP File 

<html> 
<head><title>Upload page</title></head></p> <p><body> 
<form action="upload_file" method="post" enctype="multipart/form-data" name="form1" id="form1"> 
<center> 
Specify file: <input name="file" type="file" id="file"> 
Specify file: <input name="file" type="file" id="file"> 
Specify file:<input name="file" type="file" id="file"> 
<input type="submit" name="Submit" value="Submit files"/> 
<center> 
</form> 
</body> 
</html> 


//Servlet Page 

import java.util.List; 
import java.util.Iterator; 
import org.apache.commons.fileupload.servlet.ServletFileUpload; 
import org.apache.commons.fileupload.disk.DiskFileItemFactory; 
import org.apache.commons.fileupload.*; 

boolean isMultipart = ServletFileUpload.isMultipartContent(request); 
    if (!isMultipart) { 
    } 
    else{ 
     FileItemFactory factory = new DiskFileItemFactory(); 
     ServletFileUpload upload = new ServletFileUpload(factory); 
     List items = null; 
     try { 
      items = upload.parseRequest(request); 
      } catch (FileUploadException e) { 
       e.printStackTrace(); 
      } 
     Iterator itr = items.iterator(); 
     while (itr.hasNext()) { 
      FileItem item = (FileItem) itr.next(); 
      if (item.isFormField()) { 
      } else { 
      try { 
       String itemName = item.getName(); 
       File savedFile = new File(config.getServletContext().getRealPath("/")+"uploadedFiles/"+itemName); 
       item.write(savedFile); 
       out.println("<tr><td><b>Your file has been saved at the loaction:</b></td></tr><tr><td><b>"+config.getServletContext().getRealPath("/")+"uploadedFiles"+"\\"+itemName+"</td></tr>"); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
     } 
} 
+0

感謝您的迴應,但我不能使用spring我只能使用servlets 2.5 – rehan 2013-02-23 14:19:54

+0

更新回答kindly驗證 – Sabarish 2013-02-25 04:47:59

+0

不,我不能使用apache commons(或任何外部庫),另外我還要監視已上傳文件的進度。我必須在JS中處理:) – rehan 2013-02-25 06:07:45

8

在你的HTML,你可以做到以下幾點:

<input accept="image/jpeg,image/gif,image/png" type="file" name="upload[]" multiple/> 

加入multiple您輸入的結束給予你想要的東西。

相關問題