Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
blueimp jquery文件上传不';添加失败时不会抛出错误_Jquery_Javascript Events_Jquery File Upload_Blueimp - Fatal编程技术网

blueimp jquery文件上传不';添加失败时不会抛出错误

blueimp jquery文件上传不';添加失败时不会抛出错误,jquery,javascript-events,jquery-file-upload,blueimp,Jquery,Javascript Events,Jquery File Upload,Blueimp,在这个插件中,我们可以设置文件上传的各种条件/限制(例如acceptFileTypes、maxFileSize、maxNumberOfFiles等) 无论何时添加文件,都会触发一个事件“fileuploadadd”,一旦成功添加文件,就会触发另一个事件“fileuploadadd” 但是,当添加文件时,如果该文件未通过这些条件/限制之一(例如,用户尝试上载2GB文件或文本文件而不是图像),则无法通过编程确定是否发生了这种情况 当此条件失败时,不会触发任何事件。我可以使用什么来检查用户选择的文件是

在这个插件中,我们可以设置文件上传的各种条件/限制(例如acceptFileTypes、maxFileSize、maxNumberOfFiles等)

无论何时添加文件,都会触发一个事件“fileuploadadd”,一旦成功添加文件,就会触发另一个事件“fileuploadadd”

但是,当添加文件时,如果该文件未通过这些条件/限制之一(例如,用户尝试上载2GB文件或文本文件而不是图像),则无法通过编程确定是否发生了这种情况

当此条件失败时,不会触发任何事件。我可以使用什么来检查用户选择的文件是否有错误,因此没有添加到队列中

我能想到的唯一方法是它触发一个“add”事件,然后等待,看看它是否没有触发“add”事件,那么就有问题了。但是,我既不想长时间停止所有处理,也不想太快地检查“添加的”事件是否已触发


有人能告诉我如何从这个插件中抛出自定义事件(例如fileaddfailedevent)吗?

好吧,我想出了一种方法来触发这个需求的自定义事件。如果有人想知道如何实现同样的目标,请在此处发布答案

我们需要更改的核心文件应该位于“js\jquery.fileupload ui.js”

add回调
add:function(e,data){
中,最后一个侦听器是
})。失败(function(){
。这应该大约在第120行(取决于版本)

因此,我们需要添加以下行:
that.\u触发器('addfileerror',e,data);

要总结失败的侦听器,应如下所示:

}).fail(function () {
if (data.files.error) {
    data.context.each(function (index) {
        var error = data.files[index].error;
        if (error) {
            $(this).find('.error').text(error);
        }
    });
    // added custom event to check whether any error has occured while adding the file.
    that._trigger('addfileerror', e, data); 
}
})

现在我们可以像任何其他侦听器一样绑定一个侦听器来检查此事件。

$('#fileupload').bind('fileuploadaddfileerror', function (e, data){
    console.log('Custom Error Event Fired');
});

希望这对别人有帮助

更新:


尽管文档没有明确提及,但我刚刚了解到,“fileuploadprocessfail”事件对上述要求的作用完全相同。

好的,但现在如何确切知道抛出了哪个错误?请看我的回答: