FineUploader: добавление/изменение правил проверки при обратном вызове onValidate/onValidateBatch

На странице создается зона сброса FineUploader с некоторыми начальными настройками проверки. Прежде чем пользователь нажмет кнопку «Загрузить», могут измениться некоторые параметры проверки. Как заставить FineUploader заменить первоначальные правила проверки на новые?

У меня есть приложение, которое позволяет создавать объявления разных размеров, и я хочу использовать qq.ImageValidation для проверки размеров графического объявления.


person Alexandru Furculita    schedule 15.12.2013    source источник


Ответы (1)


Как заставить FineUploader заменить первоначальные правила проверки на новые?

Вы не можете. Но вы можете вызвать функцию внутри события submit, которое может динамически проверять файлы и устанавливать некоторые «базовые» средства проверки в validation вариант.

validation: {
// set default options such as making sure all uploads are images 
// or within a certain size.
},

onSubmit: function (id, name) {

   var file = this.getFile(id),
       validated = validate(file);
   if (validated) return true;
   else return false;
}

Если эта функция возвращает false, элемент не будет помечен как проверенный и не будет загружен. Если эта функция возвращает true, то валидаторы, которые вы установили в параметрах, будут впоследствии запущены над файлом(ами).

person Mark Feltner    schedule 15.12.2013
comment
Я пробовал это, но для использования qq.ImageValidation мне нужен доступ к фактическому файлу, который я хочу проверить. item, первый аргумент из onValidate: function (item, button) — это просто объект с данными об этом файле. Как я вижу, qq.ImageValidation принимает только File или Blob в качестве первого аргумента. Как я могу получить его внутри обратного вызова onValidate? Могу ли я попытаться проверить это внутри обратного вызова onSubmit? - person Alexandru Furculita; 16.12.2013
comment
Я обновил свой ответ. Вы можете получить файл, используя getFile(id), и получить id внутри обратного вызова submit. - person Mark Feltner; 16.12.2013
comment
вы не можете выполнять какую-либо проверку в обратном вызове события submit. например, у вас нет доступа к размерам файла. - person vsync; 28.09.2014
comment
Что вы имеете в виду под размерами? Вы можете получить информацию о файле с помощью метода getFile(id) во время обратного вызова submit. - person Mark Feltner; 28.09.2014