Фильтры и обработчики для FileUpload - PullRequest
5 голосов
/ 25 июля 2011

В моем проекте GWT я хотел бы:

  1. Установить фильтр для виджета FileUpload, чтобы он принимал только файлы JPG.

  2. Включите myButton, если виджет FileUpload, называемый chooser, имеет какой-либо выбранный файл.И отключите myButton в противном случае.

Это мой код для пункта 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 ]

3 голосов
/ 01 апреля 2013

Я включил строку, подобную приведенной ниже:

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

Это сработало для меня, используя gwt FileUpload

2 голосов
/ 26 июля 2011

@ Точка 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");

@ Точка 2: chooser.isAttached () является неправильным условием imho .... вам нужно проверить, не заполнено ли поле ввода.

...