FileUpload的过滤器和处理程序

时间:2011-07-25 17:30:30

标签: gwt file-upload handler

在我的GWT项目中,我想:

  1. 为FileUpload小部件设置一个过滤器,使其只接受JPG文件。

  2. 如果名为myButton的FileUpload小部件选择了任何文件,则启用chooser。否则禁用myButton

  3. 这是我的第2点的代码,但它不起作用。有任何想法吗?提前谢谢!

    chooser.addAttachHandler(new Handler() {
    public void onAttachOrDetach(AttachEvent event) {
    if(chooser.isAttached()==false && myButton.isEnabled()==true)
        myButton.setEnabled(false);
    else if(chooser.isAttached()==true && myButton.isEnabled()==false)
        myButton.setEnabled(true);
    } });
    

2 个答案:

答案 0 :(得分:3)

我包含了如下所示的一行:

fileUpload.getElement().setAttribute("accept", "image/png, image/gif,image/jpeg");

使用gwt FileUpload

对我有用

答案 1 :(得分:2)

@Point 1:我认为,无法过滤,可以选择哪些文件。对我来说唯一的方法是在表单处理程序中进行比较,例如:

form.addFormHandler(new FormHandler(){
    public void onSubmit(FormSubmitEvent event){
      if(!extension.equals("pdf")) {
         // Error
      } else {
         // Submit
      }
    }
}

另一种解决方案是将ExtGWT与FileValidator一起使用:

fileUpload = new FileUploadField();
fileUpload.setWidth("240");
fileUpload.setValidator(new FileValidator());
fileUpload.setName("file");
fileUpload.setAccept("pdf");

@Point 2:chooser.isAttached()是错误的条件imho ....如果输入字段为空,则需要检查。