2014-03-07 97 views
2

在这个插件,我们可以设置各种条件/对文件上传限制(如acceptFileTypes,maxFileSize为,maxNumberOfFiles,等..)blueimp jQuery的文件上传不会引发错误的不成功添加

每当文件添加,一个事件被激发“fileuploadadd”,一旦文件被成功添加,另一个事件被激发“fileuploadadded”。

但是,当添加文件并且其中一个条件/限制失败(例如,用户尝试上载2GB文件或文本文件而不是图像)时,无法通过编程方式查明发生了这种情况。

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

我能想到的唯一方法是它把一个点燃的“添加”事件和观望,如果它不火“补充”事件再有一个问题。但是,我不想长时间停止所有处理,也不想过快检查“”添加的“”事件是否已触发。

OR

任何人都可以请指导如何从这个插件引发自定义事件(例如fileaddfailedevent)?

+0

请看看我的答案在这里:http://stackoverflow.com/questions/15549094/jquery-file-upload-plugin-how-to-validate-files-on-add – Tomasz

回答

5

好吧,我想出了一个方法来触发这个需求的自定义事件。如果有人想知道如何达到同样的结果,请在这里发布答案。

,我们需要改变应该位于“JS \ jquery.fileupload-ui.js”

里面添加回拨add: function (e, data) {最后听者}).fail(function() {的核心文件。这应该是在大约行号120(取决于版本)

在我们需要添加下面一行:
that._trigger('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'); 
}); 


希望这可以帮助别人。

UPDATE:

即使该文件没有明确提到它,我刚才得知“fileuploadprocessfail”事件不正是针对上述要求相同。

+0

好吧,但现在如何确切知道抛出哪个错误? –

相关问题