2012-12-27 25 views
1

我正在使用apache commons-fileupload來上傳文件。但是,我無法傳遞有關附件的更多信息。例如,用戶希望在上傳特定文件的同時添加附件信息。因此,我將評論與附件一起發送。但使用commons-fileupload,我只能得到附件,但我無法獲得評論。下面的代碼是形式如何用java中的附加信息上傳文件

<form action"taskcontroller" method="post" enctype="multipart/form-data"> 
     <label for="filename_1">File: </label> 
     <input id="filename_1" type="file" name="filename_1" size="50"/><br/> 
     comments:<input type='text' name='comments' /> 
     <input type="submit" value="upload" name="command" /> 
</form> 

和下面的代碼是處理請求,

boolean isMultipart = ServletFileUpload.isMultipartContent(request); 
if (isMultipart) { 
    FileItemFactory factory = new DiskFileItemFactory(); 
    ServletFileUpload upload = new ServletFileUpload(factory); 
    List<FileItem> items = upload.parseRequest(request); 
    Iterator iterator = items.iterator(); 
    while (iterator.hasNext()) { 
     FileItem item = (FileItem) iterator.next(); 

     if (!item.isFormField()) { //ignore the form element 
      String fileName = item.getName(); 
      // TODO filesize int is it ok? 
      int size = (int) item.getSize(); 
      String root = "";//Set the root 
      File path = new File(root + "/uploads"); 
      if (!path.exists()) { 
       boolean status = path.mkdirs(); 
      } 

      item.write(uploadedFile); //write file to disk 
     } 
    } 
} 

,但我無法獲取評論信息...

+0

如果你的問題解決了,然後接受有用的答案,否則讓我知道。 – Ravi

回答

0

當您上傳文件服務器將一個唯一的ID添加到照片中,並將評論存儲在評論表中,並將照片存儲在評論表中以唯一地標識照片的評論。

1

檢查從現場isFormField()和檢索領域getFieldName()的細節和getString()

boolean isMultipart = ServletFileUpload.isMultipartContent(request); 
if (isMultipart) { 
    FileItemFactory factory = new DiskFileItemFactory(); 
    ServletFileUpload upload = new ServletFileUpload(factory); 
    List<FileItem> items = upload.parseRequest(request); 
    Iterator iterator = items.iterator(); 
    while (iterator.hasNext()) { 
     FileItem item = (FileItem) iterator.next(); 
     String name; 
     String comment; 

    //Check for Form Field i.e. Comment field 

     if (item.isFormField()) { 
     name= item.getFieldName(); //Comment Field Name 
     comment = item.getString(); // Comment 
     } 

     //Check for attachment field 

     if (!item.isFormField()) { //ignore the form element 
      String fileName = item.getName(); 
      // TODO filesize int is it ok? 
      int size = (int) item.getSize(); 
      String root = "";//Set the root 
      File path = new File(root + "/uploads"); 
      if (!path.exists()) { 
       boolean status = path.mkdirs(); 
      } 

      item.write(uploadedFile); //write file to disk 
     } 
    } 
}