Как вызвать обработчик события Uploadify onError? - PullRequest
4 голосов
/ 10 января 2010

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

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

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

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

Ответы [ 3 ]

4 голосов
/ 10 января 2010

onError входит в опции загрузки:

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

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

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

Функция отправляет четыре аргумента:

  • событие : объект события.
  • queueID : Уникальный идентификатор файла, который возвратил ошибку.
  • fileObj : объект, содержащий сведения о выбранном файле.
    • name - Имя файла
    • размер - размер в байтах файла
    • creationDate - Дата создания файла
    • modifyDate - Дата последнего изменения файла
    • type - расширение файла, начинающееся с ‘.’
  • errorObj : объект, содержащий сведения о возвращенной ошибке.
    • введите - либо «HTTP», «IO» или «Security»
    • info - Сообщение об ошибке, описывающее тип возвращаемой ошибки
2 голосов
/ 26 марта 2010

Это убивало меня, но я нашел способ. В файле 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);
    }

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

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

0 голосов
/ 28 августа 2010
onError: function (a, b, c, d) {
         if (d.status == 404)
            alert('Could not find upload script. Use a path relative to: '+'<?= getcwd() ?>');
         else if (d.type === "HTTP")
            alert('error '+d.type+": "+d.status);
         else if (d.type ==="File Size")
            alert(c.name+' '+d.type+' Limit: '+Math.round(d.sizeLimit/1024)+'KB');
         else
            alert('error '+d.type+": "+d.text);
},
...