Как вызвать обработчик события Uploadify onError?

Я использую Uploadify для загрузки файлов. Проблема в том, что мне нужно информировать пользователей о любых ошибках при обработке этих файлов.

Uploadify имеет обработчики событий onError, onComplete и onAllComplete, но я не знаю, как инициировать эти события, чтобы пользователи были проинформированы о том, что происходит.

Нужно ли отправлять строку JSON? Подсказка есть здесь и здесь и здесь, но я не смог заставить его работать. Возможно, сообщение на форуме устарело.

У кого-нибудь есть пример, который работает для Uploadify 2.1?


person Rosdi Kasim    schedule 10.01.2010    source источник


Ответы (2)


Это убивало меня, но я нашел способ. В файле uploadify.php я создал все свои проверки. Разница здесь в том, что я устанавливаю коды HTTP 4xx для каждого типа ошибки.

if (! in_array($fileParts['extension'], $typesArray)) {
    header("HTTP/1.1 405"); //any 4XX error will work
    exit();
}

Это возвращает ошибку «405» обратно в uploadify.js.

В файле, который я установил $("#fileInput").uploadify(), я добавил функцию "onError".

        'onError' : function(event, ID, fileObj, errorObj) {
        var r = "<br />ERROR: ";
        switch(errorObj.info) {
        case 405:
            r += "Invalid file type.";
            break;
        case 406:
            r += "Some other error.";
            break;
        }

        setTimeout('$("#fileInput'+ ID + 'span.percentage").html("'+r+'");',111);
    }

Это заставляет функцию uploadify по умолчанию существовать, хотя и расширяет ее.

Надеюсь, это поможет!

person Brant Messenger    schedule 26.03.2010
comment
@Rosdi Это решение позволит вам поместить сообщение об ошибке в div, который содержит информацию о файле, в котором произошла ошибка. Метод предупреждения удаляет элемент div, как если бы он был завершен, а затем выдает предупреждение. - person Brant Messenger; 02.04.2010

onError входит в параметры загрузки:

$("#fileInput").uploadify({
  onError: function(e, q, f, o) {
    alert("ERROR: " + o.info);
  }
});

Из Документация

Функция, которая срабатывает при возникновении ошибки в процессе загрузки. Обработчик событий по умолчанию прикрепляет сообщение об ошибке к элементу очереди, возвращающему ошибку, и меняет цвет контейнера элемента очереди на красный.

В функцию передаются четыре аргумента:

  • event: объект события.
  • queueID: уникальный идентификатор файла, который возвратил ошибку.
  • fileObj: An object containing details about the file that was selected.
    • name – The name of the file
    • size — размер файла в байтах.
    • creationDate — дата создания файла.
    • modificationDate — дата последнего изменения файла.
    • тип — расширение файла, начинающееся с «.»
  • errorObj: An object containing details about the error returned.
    • type – Either ‘HTTP’, ‘IO’, or ‘Security’
    • info — сообщение об ошибке с описанием типа возвращаемой ошибки.
person Sampson    schedule 10.01.2010
comment
Да, но мне нужно знать формат строки, который сервер должен написать, чтобы uploadify знал, что во время обработки загруженного файла возникла проблема. Допустим, я хочу отобразить ошибку в строке 3, неверный код дилера: «DEALER001» для пользователя, как мне это сделать? - person Rosdi Kasim; 10.01.2010
comment
@Rosdi, единственная информация об усилиях / файлах, к которой у вас есть доступ через uploadify, указана в моем посте выше. - person Sampson; 10.01.2010
comment
@Jonathan, ах .. так что onError не предназначен для предоставления пользователям пользовательских сообщений об ошибках. Вместо этого я должен использовать onComplete .. спасибо за разъяснение. - person Rosdi Kasim; 11.01.2010