Bu garip soruna sahibim ve çeşitli çözümleri denedim (hatta web sitelerinde Basic Plus demosu ile aynı uygulamayı gerçekleştirdim). Dosyaları iyi, tek veya çoklu olarak yükleyebilirim. Ayrı bir öğenin veya "Tümünü Yükle" düğmesini tıklarlar. Sorun, yüklemeden önce veya sonra ek dosyalar eklemeye çalışıyor. Dosya yükleme eklentisi, bu dosyaların dosya girişinde değiştiğini bile algılamayacaktır, bu yüzden "fileuploadadd" olayını hiç açmaz ve daha fazla dosya yüklemek için sayfayı yenilememi gerektirir. Dosya yükleme olayının bir yerde kaybolup kaybolmadığını merak ediyorum ama hayatımın nerede olduğunu anlayamıyorum.Blueimp Dosya Yükleme Eklentisi sadece bir kez yüklenir
Ayrıca, blueimp dosya yükleme eklentisi, JSON'un belirli bir dönüş biçimini gerektirir mi? Dakikada, yüklemeler başarılıysa ve benzer bir hata iletisi aldığımda "{\"status\":\"success\"}
'u iade ediyorum. DÜZENLEME: Yanıt biçimini blueimp ile gösterilen örneklere dönüştürmenin bir etkisi olmadı.
Kullandığım yükleyici için bazı kodlar. Şu anda ASP.NET ve jQuery 2.0.3 ve jQuery UI 1.9.2 kullandığımı unutmayın.
function initFileUploader() {
//initProgressBars();
$(upload_progressbar_title).css('display', 'none');
$(upload_progressbar).css('display', 'none');
$(upload_upload).on('click', function() {
$(upload_progressbar).css('display', 'block');
$(upload_progressbar_title).css('display', 'block');
$('.uploadbtn').click();
});
$(upload_browse).on('click', function() {
$(upload_file).click();
return false;
});
$.guid = 0;
console.log('initialising file upload');
var uploadButton = $('<input type="button" id="button" />')
.addClass('button tiny').addClass('uploadbtn')
.prop('disabled', true)
.val('Processing...');
var uploadCon = $('<div class="small-4 medium-6 large-6 columns progresscontainer" />')
.append('<div class="progressbar" />')
.append('<label class="progressbarlabel">Not uploading</label>');
uploadCon.append($(uploadButton).on('click', function() {
var $this = $(this),
data = $this.parent().data();
$this
.off('click')
.val('Abort')
.on('click', function() {
$this.remove();
data.abort();
});
data.submit().always(function() {
$this.remove();
}).success(function (result, textStatus, jqXHR) { console.log("Result: " + result + " - TextStatus " + textStatus); })
.error(function (jqXHR, textStatus, errorThrown) { console.log("Error: " + errorThrown + " - TextStatus " + textStatus); })
.complete(function (result, textStatus, jqXHR) { console.log("Result: " + result + " - TextStatus " + textStatus); });
}));
$(upload_file).fileupload({
dataType: 'json',
autoUpload: false,
acceptFileTypes: /(\.|\/)(pdf|jpe?g|png|doc|docx)$/i,
maxFileSize: 5000000, // 5 MB
}).on('fileuploadadd', function (e, data) {
var uniqueId = $.guid++;
data.context = $('<div id="div_upload_dcon_' + uniqueId +'" class="row"/>').appendTo(upload_filescon);
$.each(data.files, function (index, file) {
file.uniqueId = uniqueId;
var node = $('<div id="div_fname" class="small-6 medium-4 large-4 columns"/>')
.append($('<span/>').text(file.name));
if (!index) {
data.url = baseUrl + 'PostUploadFile?fileName=' + data.files[index].name + '&refId=' + ClientRefId + '&upbyid=' + ClientUserId + '&ticketId=' + globalTicketId;
var contentNode = (uploadCon.clone(true).data(data));
}
node.appendTo(data.context);
$(contentNode).appendTo(data.context);
$(upload_file).on('change', function() {
alert('changing fileinput');
});
});
}).on('fileuploadstart', function (e, data) {
initProgressBars();
}).on('fileuploadchange', function (e, data) {
alert('changing');
}).on('fileuploadprocessalways', function (e, data) {
var index = data.index,
file = data.files[index],
node = $(data.context.children()[index]);
if (file.error) {
console.log(file.error));
}
if (index + 1 === data.files.length) {
$('.uploadbtn').val('Upload').prop('disabled', !!data.files.error);
}
}).on('fileuploadprogress', function (e, data) {
var progress = parseInt(data.loaded/data.total * 100, 10);
$('#div_upload_dcon_' + data.files[0].uniqueId).progressbar('value', progress);
}).on('fileuploadprogressall', function (e, data) {
var progress = parseInt(data.loaded/data.total * 100, 10);
$(upload_progressbar).progressbar('value', progress);
}).on('fileuploaddone', function (e, data) {
getTicketContent(globalTicketId);
}).on('fileuploadstop', function (e, data) {
$(upload_file).val('');
}).on('fileuploadfail', function (e, data) {
$.each(data.files, function (index, file) {
var error = $('<span class="text-danger"/>').text('File upload failed.');
$(data.context.children()[index])
.append('<br>')
.append(error);
});
});
}
Harika! Tam olarak aynı sorun yaşadım. – d9120
Teşekkürler, günümü kurtar! –
benim de günümü kurtar! –