2011-08-24 47 views
3

我试图在我的应用程序中实现文件上传小部件时有一些查询。经过多次尝试,似乎并不奏效。如何使用GWT文件上传?

因此,我试图找到工作解决方案,看看我能从那里理解任何东西。

http://code.google.com/p/faculty-gwt/source/checkout

不过,我试图用这个上传文件,似乎我收到错误消息了。那个文本框和列表框假设要做什么?它是为了显示在提交之前验证输入的示例?

有人可以指导我解决这个问题吗?谢谢。

回答

2

千万不要试图用你提供的链接,但是这是我做过什么用AA GWT的FileUpload控件:

我使用UiBinder的内置了文件上传控件:

<g:FormPanel ui:field="docForm"> 
    <g:FlowPanel ui:field="inputPane"> 
     /*other displayed info*/ 
     <g:FileUpload ui:field="DocPath"/> 
     /*other displayed info*/ 
    </g:FlowPanel> 
</g:FormPanel> 

(占GWT API,文件上传控件只能从FormPanel中使用)

确保您在FormPanel中设置这些,否则你可能会遇到问题:

yourFormPanel.setEncoding(FormPanel.ENCODING_MULTIPART); 
    yourFormPanel.setMethod(FormPanel.METHOD_POST); 

即widget被投进我的容器页面,然后添加到显示面板:

private FileUploadWidget createNewUploader(){ 
    FileUploadWidget uploader = new FileUploadWidget(/*my constructor params*/); 

    uploader.addChangeHandler(new ChangeHandler() {   
     @Override 
     public void onChange(ChangeEvent event) { 
      DocPanel.add(createNewUploader()); 
     } 
    }); 

    return uploader; 
} 

我OnChange事件是这样我可以有一个新的空白上传当我使用当前之一。

,当我准备提交:

private void processUpload(FileUploadWidget upload, int id) { 
    upload.setId(id); 
    //Don't bother to submit an empty one. 
    if (upload.IsFileSelected()) 
     upload.Submit(); 
}