2009-06-04 47 views
2

上傳文件在Java中我使用javazoom上傳使用servlet

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
throws ServletException { 
    PrintWriter out = null; 
    JOptionPane.showMessageDialog(null, "Lets do this"); 
    try { 
     response.setContentType("text/html;charset=UTF-8"); 
     try { 
      MultipartFormDataRequest dataRequest = new MultipartFormDataRequest(request); 
      //get uploaded files 
      Hashtable files = dataRequest.getFiles(); 
      if (!files.isEmpty()) { 
       UploadFile uploadFile = (UploadFile) files.get("filename"); 
       byte[] bytes = uploadFile.getData(); 
       String s = new String(bytes); 

的文件總是來爲空。 請幫忙嗎?


我然後試圖與Apache通用FileUpload這樣做:

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
throws ServletException { 
    PrintWriter out = null; 

     try { 

      response.setContentType("text/html;charset=UTF-8"); 
      //MultipartFormDataRequest dataRequest = new MultipartFormDataRequest(request); 
      //get uploaded files 
      FileItemFactory factory = new DiskFileItemFactory(); 
      // Create a new file upload handler 
      ServletFileUpload upload = new ServletFileUpload(factory); 
      List files = null; 
      try { 
       files = upload.parseRequest(request); 
      } catch (FileUploadException ex) { 
       Logger.getLogger(ProcessUploadItem.class.getName()).log(Level.SEVERE, null, ex); 
      } 

,並未能在files = upload.parseRequest(request);

任何指針?

對不起和謝謝:)

+0

請注意標記問題時的提示提示。名稱後面的數字小於10的任何標籤可能都是錯誤的。避免創建新標籤。 – 2009-06-05 14:41:01

+0

啊thnx ...我會記住這一點 – Lilz 2009-06-07 13:36:12

回答

3

檢查的形式發送的文件有ENCTYPE = 「的multipart/form-data的」 喜歡這裏定義:

<form enctype="multipart/form-data" action="... 

其它方式根據該文件將永遠不會上傳RFC1867

+0

我寫了這個給我的其他servlet out.println(「

「); out.println(「

文件上傳

」); out.println(「Select a file:」); (「」); out.println(「
」); (「」); out.println(「
」); – Lilz 2009-06-04 09:42:45

0

您是否在使用其他框架,如特立尼達或類似的?它們通常包含恢復上傳文件的過濾器,因此當進程到達服務器時,請求中不包含任何附加文件。

+0

不,我不相信我是:S – Lilz 2009-06-04 10:48:41

4

我建議使用更流行的高配置文件庫來執行此操作,例如Apache Commons FileUpload。它更有可能工作,擁有更好的文檔,並有更多的人來幫助您使用它。