Jak zatrzymać upload?

Witam

Chcę wykorzystać komponent Uploader do wrzucania grafiki na serwer i chciałbym jakoś elegancko obsłużyć ograniczenia na rozmiar pliku i na typ. Wszystkie informacje są na miejscu - Receiver dostaje MIME, z eventu w StartedListener’rze mogę sobie wyciągnąć wielkośc uploadowanego pliku - czyli jest wszystko co trzeba żeby stwierdzić czy plik powinien się dostać na serwer czy nie. Teraz tylko - jak to zrobić? Żeby zatrzymać całą akcję mogę z Receivera zwrócić NULL zamiast output streama, ale wtedy aplikacja eksploduje (trudno to nazwać elegancką obsługą). Co zrobić z uploadStarted() żeby uwalić proces jak plik jest za duży też nie wiem. Już nie mówiąc o wystawieniu ładnych komunikatów jako component error.

Da się to jakoś ładnie zrobić zanim plik trafi na serwer?

Sam znalazłem rozwiązanie - upload moża zatrzymać za pomocą metody interruptUpload().

Moze napisac wlasny
Upload
dziedziczacy po
com.vaadin.ui.Upload
, w ktorym jedyna roznica bedzie implementacja
streamVariable
(
getStreamVariable()
)? Tu wystarczy przepisac metode
streamingStarted(StreamingStartEvent event)
tak, zeby zamiast rozpoczynac upload dla zbyt duzych plikow wolala swoja metode
streamingFinished(StreamingEndEvent event)
.

O, też fajne. Popróbuję, dzięki.