我从未尝试使用您提供的链接,但这是我使用GWT FileUpload小部件的方法:
我使用uibinder构建了一个文件上传小部件:
<g:FormPanel ui:field="docForm">
<g:FlowPanel ui:field="inputPane">
<g:FileUpload ui:field="DocPath"/>
</g:FlowPanel>
</g:FormPanel>
根据GWT api,FileUpload小部件只能从FormPanel中使用。
请确保在FormPanel中设置这些内容,否则可能会出现问题:
yourFormPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
yourFormPanel.setMethod(FormPanel.METHOD_POST);
那个小部件被拖放到我的容器页面中,然后添加到显示面板中:
private FileUploadWidget createNewUploader(){
FileUploadWidget uploader = new FileUploadWidget();
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();
}