0

在我的代码中,我将文件大小设置为 1mb ,它工作正常但不会抛出任何错误消息我该如何设置?

 $(document).ready(function () {

        $("#my-dropzone").dropzone({
            maxFiles: 1,
            maxFilesize: 1,
            parallelUploads: 1,
            url: "upload.php",


            success: function (file,response) {


                file.previewElement.classList.add("dz-success");

            },

            error: function (file,response) {
                sv.previewElement.classList.add("dz-error");
            }
        });
    });
4

2 回答 2

0

正如 dropzone 文档所说

由于监听事件只能在 Dropzone 的实例上完成,设置事件监听器的最佳位置是 init 函数

所以设置 init 回调并在其中的 dropzone 实例中声明success和回调:error

$("#my-dropzone").dropzone({
    maxFiles: 1,
    maxFilesize: 1,
    parallelUploads: 1,
    url: "upload.php",
    init: function() {  // first you need an init callback
        success: function(file, response) {
            alert("Yeehaw!");
        },
        error: function(file, response) {  // and then can you have your error callback
            alert("Bah humbug...");
        }
    }
});
于 2019-12-14T14:34:30.330 回答
-1

考虑这个等价的例子:

try {
    var foo = function() {
        throw new Error("foo error");
    }
}
catch (error) {
}

foo();

你不会期望调用 foo 导致的错误会被捕获,因为在定义 foo 时执行是在 try 块内。

一种解决方案当然是在可能抛出的函数体内使用 try/catch,如您所示。另一种解决方案是创建一个可重用的“捕获包装器”函数,可能像这样:

function catchIfException(func, handler) {
    return function() {
        try {
            var args = Array.prototype.slice.call(arguments);
            func.apply(this, args);
        }
        catch (error) {
            handler(error);
        }
    };
}


    $(document).on('change', 'select', 
        catchIfException(
            function(event) {
                event.preventDefault();
                event.stopPropagation();

                throw new Error('callPage method failed');
            }, 
            function(error) {
                console.log("error: " + error);
            }
        );
    );
于 2018-05-24T10:14:48.927 回答