Шов: Проверка s: fileUpload? - PullRequest
       12

Шов: Проверка s: fileUpload?

1 голос
/ 12 апреля 2011

У меня есть страница JSF, которая позволяет пользователям загружать изображения.Я хотел бы провести некоторую проверку загруженного файла, чтобы убедиться, что он имеет правильный размер, размеры, тип содержимого и т. Д. Я создал JSF Validator и попытался указать его как в атрибуте <s:fileUpload validator="XXX" />, так и виспользуя тег <f:validator />.Однако, что бы я ни пытался, мой валидатор никогда не вызывается.Есть ли способ проверить загрузку файла в Seam?Позволит ли использование <rich:fileUpload /> выполнить проверку загруженного файла?

Ответы [ 2 ]

1 голос
/ 26 апреля 2011

После долгих проб и ошибок я просто решил выполнить ручную проверку в моем методе отправки. Я не нашел способа заставить объект Validator работать успешно.

0 голосов
/ 12 апреля 2011

Вы можете попробовать с прослушивателем, например (не уверен, есть ли у события метод отмены для вызова, если ваше ограничение не выполняется, но вы можете проверить):

public void listener(UploadEvent event) throws IOException {
    UploadItem item = event.getUploadItem();

    String name = "unnamed_attachment";
    byte[] data = item.getData();

    if (item.isFile()) {
        name = FilenameUtils.getName(item.getFileName());
        data = FileUtils.readFileToByteArray( item.getFile() );
    }

    debug("file uploaded '#0' : '#1'", name, item.getFileName());

И некоторые ограничения, которые вы можете поместить в компоненты.xml, например:

<web:multipart-filter create-temp-files="false" max-request-size="5200000" url-pattern="/*"/>

...