我正在尝试为blueimp的jQuery-File-Upload实现错误处理。对于错误很容易实现,我可以在服务器上捕获这些错误,并将其包装到JSON对象中。但是,如果服务器出现PHP错误,并且消息显示为standard-PHP-message怎么办?我试着用失败回调来处理它:
jQuery('#fileupload').fileupload({
fail: function (ev, data) {
if (data.jqXHR) {
alert('Server-error:\n\n' + data.jqXHR.responseText);
}
},
otherOptions
});它正在工作,但是如果我按下取消按钮来删除图像,回调也会被触发。因此,我添加了if和data.jqXHR,以便区分服务器错误和按下取消按钮。但是,如果按下了cancel-按钮,图像将不再从列表中删除。
你知道如何为意外的服务器错误实现这样的错误处理吗?
谢谢,本
发布于 2014-04-12 19:50:58
我找到了答案。我需要使用
.bind('fileuploadfail', function (e, data) {而不是直接重写失败函数。
发布于 2014-11-17 02:09:10
发问者提供的答案对我不起作用。我使用了一个变量来指示故障是否由用户触发。
add: function (e, data) {
if (data.autoUpload || (data.autoUpload !== false && $(this).fileupload('option', 'autoUpload'))) {
$.each(data.files, function (index, file) {
// UPLOAD INDICATOR
// file heading
single_upload = "<b class='file_upload'>"+file.name+"</b>";
// cancel btn
single_upload += "<a class='remove_upload'> || Cancel!</a>";
// contain
single_upload = "<div class='upload'>"+single_upload+"</div>";
// create and display node related to specific upload
data.context = $(single_upload).appendTo(document.body);
// CANCEL BTN LISTENER
$(data.context).find(".remove_upload").click(function() {
// prevent displaying of server error
// (prevent fileupload "fail" event trigger)
fileupload_userCancelledUpload = true;
jqXHR.abort();
data.context.remove();
})
});
var jqXHR;
data.process().done(function () {
jqXHR = data.submit();
});
}
},
fail: function (e, data) {
if (!fileupload_userCancelledUpload) {
// catches server errors (not validation errors), such as 413
handleUploadFailure(data.context, " Server error: "+$(data.jqXHR.responseText).filter("title").text());
}
fileupload_userCancelledUpload = false;
}https://stackoverflow.com/questions/23019105
复制相似问题