Tôi gặp sự cố lạ này và tôi đã thử một số giải pháp (thậm chí thực hiện giống như bản trình diễn Basic Plus trên trang web của họ). Tôi có thể tải lên các tập tin tốt, đơn hoặc nhiều. Chúng tải lên một lần nhấp vào mục riêng lẻ hoặc nút "Tải lên tất cả". Sự cố đang cố thêm các tệp bổ sung trước hoặc sau khi tải lên. Plugin tải lên tệp sẽ thậm chí không phát hiện thấy những tệp này đang thay đổi trong tệp nhập, vì vậy nó không bao giờ kích hoạt sự kiện "fileuploadadd" và yêu cầu tôi làm mới trang để tải lên nhiều tệp hơn. Tôi tự hỏi liệu sự kiện thay đổi tập tin đang bị mất ở đâu đó, nhưng tôi không thể cho cuộc sống của tôi tìm ra nơi.Tải lên tệp tải lên tệp Blueimp chỉ một lần
Ngoài ra, plugin tải lên tệp blueimp có yêu cầu định dạng trả về cụ thể của JSON không? Vào phút đó, tôi chỉ trả lại "{\"status\":\"success\"}
nếu video tải lên thành công và thông báo lỗi tương tự. EDIT: Thay đổi định dạng phản hồi thành ví dụ được hiển thị bởi blueimp không có hiệu lực.
Dưới đây là một số mã cho người tải lên tôi đang sử dụng. Lưu ý rằng tôi hiện đang sử dụng ASP.NET và jQuery 2.0.3 và jQuery UI 1.9.2.
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);
});
});
}
Tuyệt vời! Chính xác cùng một vấn đề tôi đã gặp phải. – d9120
cảm ơn bạn, hãy cứu ngày của tôi! –
cũng cứu cả ngày của tôi! –