2010-05-24 12 views
1

什麼是上傳的Grails目錄的最好方法?如何通過Grails或Java上傳目錄?

我試試這個代碼:

def upload = { 
    if(request.method == 'POST') { 
     Iterator itr = request.getFileNames(); 

     while(itr.hasNext()) { 
      MultipartFile file = request.getFile(itr.next()); 
      File destination = new File(file.getOriginalFilename()) 

      if (!file.isEmpty()) { 
       file.transferTo(destination) 
       // success 
      } 
      else 
      { 
       // failure 
      } 
     } 

     response.sendError(200,'Done'); 
    } 
    } 

不幸的是,我只能通過文件上傳文件。 我想定義我的目錄,並直接上傳所有文件。

任何想法?

回答

1

這裏有一個重大的誤解。您發佈的代碼,如果服務器和客戶端,如果你正在使用的有不當行爲發送MSIE瀏覽器在物理上相同機(不會在現實世界中發生)運行只會工作沿着文件名的完整路徑。

實際上,您應該將上傳文件的內容作爲InputStream並將其寫入任何通常的Java IO方式的OutputStream。文件名可以用來在服務器端創建一個具有相同名稱的文件,但是您可以確保您從文件名中通過MSIE發送的路徑不正確地刪除文件。

至於你的實際功能需求,HTML不提供設施由單一<input type="file">元素上傳完整目錄或多個文件。您需要創建一個客戶端應用程序,該應用程序可以從您的網頁上提供此服務,例如使用Swing JFileChooser的Java Applet。有這樣的第三方解決方案,如JumpLoader

+0

好吧,我無法通過HTML上傳完整目錄。 JumpLoader看起來不錯,但不免費(我會盡量找到類似的項目)。謝謝 ! – 2010-05-24 23:29:36

+0

它是免費的。再次閱讀,您只需要付費即可獲得無標識版本或完整的開源版本。點擊頂部導航欄中的*下載*鏈接即可獲得免費版本。 – BalusC 2010-05-24 23:36:33