2011-12-07 8 views
-1

私はUI.xmlを使用してfileuploadウィジェットを作成しました。書かれたサーブレット。私のサーブレットは呼び出していますが、ファイルの内容は取得していません。私はここに私のコードを貼り付けました。あなたは何が問題なのか、内容の取得方法にお答えできますか?これはこれを初めて使用しています。私にお知らせください 。続きGWTのUIを持つFileUpload。サーブレットが呼び出されましたが、ファイルの内容が取得されていません

UI

<g:FormPanel ui:field="uploadDPAFormPanel"> 

     <g:HorizontalPanel> 
      <g:Label> File 
       Upload: &nbsp;&nbsp;&nbsp;</g:Label> 
      <g:FileUpload ui:field="fileUpload" /> 

      <g:Button ui:field="uploadButton" title="Upload" 
       Upload</g:Button> 
     </g:HorizontalPanel> 

</g:FormPanel> 

は私のimpleクラスです:

@UiHandler("uploadButton") 
void onClickUploadButton(ClickEvent event) { 
    GWT.log("You selected: " + fileUpload.getFilename(), null); 
    uploadDPAFormPanel.submit(); 
} 
public void init() { 
    uploadDPAFormPanel.setEncoding(FormPanel.ENCODING_MULTIPART); 
    uploadDPAFormPanel.setMethod(FormPanel.METHOD_POST); 
    uploadDPAFormPanel.setAction(GWT.getHostPageBaseURL() 
      + uploadServlet); 
    uploadDPAFormPanel.addSubmitHandler(new FormPanel.SubmitHandler() { 

     @Override 
     public void onSubmit(SubmitEvent event) { 

      if (!"".equalsIgnoreCase(fileUpload.getFilename())) { 
       GWT.log("UPLOADING FILE????", null); 
       // NOW WHAT???? 
       } 
      else{ 
       GWT.log("UPLOA event cancel"); 
       event.cancel(); // cancel the event 
       } 
      } 
     }); 

    uploadDPAFormPanel 
    .addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() { 
     @Override 
     public void onSubmitComplete(SubmitCompleteEvent event) { 
      //TODO need to write code to refresh the page 
      doAlert("Uploaded sucessfully"); 
     } 
    }); 
} 

後、私のサーブレットクラスである:

public void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     ServletFileUpload upload = new ServletFileUpload(); 
     log.debug("UploadServlet upload:"+upload); 
     try { 


     FileItemIterator iter = upload.getItemIterator(request); 
     log.debug("UploadServlet iter:"+iter); 
     System.out.println("UploadServlet iter:"+iter); 
     while (iter.hasNext()) { 

      FileItemStream item = iter.next(); 
      log.debug("UploadServlet iter:Field Name:"+item.getFieldName()); 
      System.out.println(":Field Name:"+item.getFieldName()); 
      System.out.println(":Name:"+item.getName()); 
      System.out.println(":is form field:"+item.isFormField()); 
      String name = item.getFieldName(); 
      InputStream stream = item.openStream(); 
      // Process the input stream 
      ByteArrayOutputStream out = new ByteArrayOutputStream(); 
      int len; 
      byte[] buffer = new byte[8192]; 
      while ((len = stream.read(buffer, 0, buffer.length)) != -1) { 
       out.write(buffer, 0, len); 
      } 
      int maxFileSize = 10 * (1024 * 2); // 10 megs max 
      if (out.size() > maxFileSize) { 
       throw new RuntimeException("File is > than " + maxFileSize); 
      } 
     } 
    } catch (Exception e) { 
     throw new RuntimeException(e); 
    } 
} 
+0

他の情報が必要な場合は教えてください。問題を特定するのに役立ちます – vishnu

+0

誰でもこの返信をすることができます。 同じprobを取得しています https://stackoverflow.com/questions/30151261/gwt-file-upload-calling-servlet-but-file-not-recieved-item-size-is-zero –

答えて

1

あなたのFileUploadname="..."を設定する必要があります。

関連する問題