【问题标题】:jQuery-File-Upload: Handle server errorsjQuery-File-Upload:处理服务器错误
【发布时间】:2014-04-11 17:35:00
【问题描述】:

我正在尝试为 blueimp 的 jQuery-File-Upload 实现错误处理。对于我可以在服务器上捕获并将其包装到 JSON 对象中的错误,它很容易实现。但是,如果服务器出现 PHP 错误并且消息显示为标准 PHP 消息怎么办?我试图用失败回调来处理它:

jQuery('#fileupload').fileupload({
    fail: function (ev, data) {
        if (data.jqXHR) {
            alert('Server-error:\n\n' + data.jqXHR.responseText); 
        }
    }, 
    otherOptions
});

它正在工作,但如果我按下取消按钮删除图像,也会触发回调。因此,我在 data.jqXHR 中添加了 if 以区分服务器错误和取消按钮按下。但是,如果按下取消按钮,图像就不会再从列表中删除。

知道如何针对意外的服务器错误实现这样的错误处理吗?

谢谢,本

【问题讨论】:

    标签: error-handling jquery-file-upload blueimp


    【解决方案1】:

    我找到了答案。我需要使用

    .bind('fileuploadfail', function (e, data) {
    

    而不是直接覆盖失败函数。

    【讨论】:

    • 或 .on('fileuploadfail', function (e, data) {
    • 如果按下取消按钮,这也会被触发。
    【解决方案2】:

    提问者提供的答案对我不起作用。我用一个变量来表示失败是否是由用户触发的。

    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;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-23
      • 2014-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-28
      相关资源
      最近更新 更多