Я пытаюсь использовать плагин загрузки файлов 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});
, поэтому я пытаюсь использовать ее для отправки файлов. К сожалению, я вообще не получаю никакого ответа ни от одной из функций обратного вызова, и я понятия не имею, почему.
$('#add_form').on('fileuploadfail', func);
или.bind
при использовании старого jquery. - person Kevin B   schedule 09.08.2012fileuploadfail
события#add_form
не дала вам ошибку? (не тот, что из твоего аякса) - person Kevin B   schedule 09.08.2012$("#add_form")
выбирает элемент, а$("[id=add_form")
выбирает только 1 элемент. - person Kevin B   schedule 09.08.2012