Фильтры и обработчики для загрузки файлов
В моем проекте GWT я хотел бы:
-
Установите фильтр для виджета FileUpload, чтобы он принимал только файлы JPG.
-
Включите
myButton
, если виджет FileUpload, называемыйchooser
, имеет любой выбранный файл. И отключитеmyButton
в противном случае.
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 ответа:
@Пункт 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: выбирающий.isAttached () - неверное условие имхо....вам нужно проверить, пусто ли поле ввода.