Загрузка файла blueimp jQuery не запускается

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

var initFileUpload = function (gender) {
//Used to bind fileupload plugin and send files

//bind file upload
$('#add_form').fileupload({
    namespace: gender+'_image',
    singleFileUploads: true,
    formData: [{name:'gender', value: gender}],
    fileInput: $("#"+gender+'_image'), 
    done: function(e, data){
        alert('success '+data.result);
    }

});
//Bind event callbacks
$('#add_form').bind('fileuploadsend', function (e, data) {
    console.log('sent');
});
$('#add_form').bind('fileuploaddone', function (e, data) {
    console.log('done');
});
$('#add_form').bind('fileuploadfail', function (e, data) {
    console.log(data.result);
});
$('#add_form').bind('fileuploadalways', function (e, data) {
    console.log(data.result);
});

}

Это было вдохновлено руководством по загрузке нескольких файлов здесь Я делаю это так, потому что у меня есть 3 разных входа с разными именами. Затем я запускаю функцию отправки вручную внутри моего вызова ajax или пытаюсь это сделать.

$.ajax({
      type: "POST",
      url: "/manage/processadditem",
      data: $("#add_form").serialize(),
      dataType: "html",
      success: function( response, textStatus, XHR )
      {
        if(response.indexOf('invalid') >= 0 || response.indexOf('Exception') >= 0){
            //Show them their errors
            alert(response);
        }
        else{
            //Upload item images
            //Send files
            $('#add_form').fileupload('send', {fileInput: $("#neutral_image"), url: '/manage/items/itemimage/test' });
            $('#add_form').fileupload('send', {fileInput: $("#male_image"), url: '/manage/items/itemimage/test' });
            $('#add_form').fileupload('send', {fileInput: $("#female_image"), url: '/manage/items/itemimage/test' });
            alert('should have uploaded image to cdn.completeset.com/items/test_nla.jpg if gender was neutral');
        }

      },
      error: function(jqXHR, textStatus, errorThrown){
        alert('An error occurred, please try again later.');
      }
    });

Я нашел в документации здесь в разделе Программная загрузка файлов, что вы можете используйте метод отправки для ручной отправки файлов с помощью строки типа $('#fileupload').fileupload('send', {files: filesList});, поэтому я пытаюсь использовать ее для отправки файлов. К сожалению, я вообще не получаю никакого ответа ни от одной из функций обратного вызова, и я понятия не имею, почему.


person jaimerump    schedule 09.08.2012    source источник
comment
убедитесь, что вы не включаете jQuery.js дважды. Также имейте в виду, что инструменты jQuery иногда включают собственную версию jQuery, если вы используете инструменты jQuery.   -  person Kevin B    schedule 09.08.2012
comment
@KevinB Это избавило от сообщения об ошибке, но теперь оно просто молча терпит неудачу. Знаете ли вы какие-либо способы, которыми я мог бы получить отладочные сообщения?   -  person jaimerump    schedule 09.08.2012
comment
Попробуйте выполнить привязку к событию сбоя. $('#add_form').on('fileuploadfail', func); или .bind при использовании старого jquery.   -  person Kevin B    schedule 09.08.2012
comment
@KevinB Я пытался добавить оповещения как к событиям «выполнено», так и к событиям «сбой», что отражено в приведенном выше коде, но ни одно из них не сработало. Тем не менее, он успешно преодолевает все 3 вызова функций для предупреждения.   -  person jaimerump    schedule 09.08.2012
comment
Итак, привязка к событию fileuploadfail события #add_form не дала вам ошибку? (не тот, что из твоего аякса)   -  person Kevin B    schedule 09.08.2012
comment
Убедитесь, что $("#add_form") выбирает элемент, а $("[id=add_form") выбирает только 1 элемент.   -  person Kevin B    schedule 09.08.2012
comment
@KevinB Я неправильно истолковал это в первый раз, но нет, это тоже не срабатывает. Кажется, он полностью пропускает вызовы моих функций.   -  person jaimerump    schedule 09.08.2012
comment
@KevinB только один элемент с идентификатором add_form. Я также попытался добавить предупреждение к стартовому событию и до сих пор ничего не получил.   -  person jaimerump    schedule 09.08.2012
comment
Привет, jaimerump, перепрыгнул сюда с другого твоего вопроса. Есть ли способ увидеть ваш код вживую?   -  person Vap0r    schedule 09.08.2012
comment
@KevinB Я пересмотрел вопрос, чтобы отразить то, что я понял, играя с ним. Я почти уверен, что загрузчик файлов подключен, потому что функция, которая должна его прикрепить, запускается правильно, но как только он подключен, он вообще ничего не делает.   -  person jaimerump    schedule 11.08.2012
comment
@KevinB - это исправило это для меня, я дважды включал jquery   -  person sami    schedule 15.12.2012


Ответы (2)


Я только что закончил с плагином malsup form здесь. http://malsup.com/jquery/form/#ajaxForm После борьбы с blueImp для 2 дни я получил это и работает всего за несколько минут.

person jaimerump    schedule 11.08.2012

Попробуйте это, вы можете скачать рабочий пример здесь;

загрузчик файлов jQuery Blueimp

person Sameera Millavithanachchi    schedule 08.06.2013