dropzone.js .removeAllFiles()不会删除模拟文件

Pie*_*tup 5 dropzone.js

我注意到在dropzone实例上调用.removeAllFiles()时,使用此处所示的技术接收"mock"文件实际上并没有产生预期的效果(模拟文件仍然存在).

Vis*_*air 16

我也有同样的问题.我认为它发生是因为从服务器添加的文件不会进入文件数组,当你调用removeAllFiles()它时将无法工作,因为它不在文件数组中.
所以显而易见的解决方案是将它们添加到文件数组中,它看起来像这样

$(function() {
    var mockFile = { name: "banner2.jpg", size: 12345 };
    var myDropzone = new Dropzone("#my-awesome-dropzone");
    myDropzone.options.addedfile.call(myDropzone, mockFile);
    myDropzone.files.push(mockFile); // here you add them into the files array
    myDropzone.options.thumbnail.call(myDropzone, mockFile,
        "http://localhost/test/drop/uploads/banner2.jpg");
});
Run Code Online (Sandbox Code Playgroud)

现在您可以myDropzone.removeAllFiles();在某些事件上使用,从服务器添加的文件也将从dropzone中删除.

注意:使用上述代码时请记住.如果要从dropzone中删除文件时触发服务器端代码从服务器中删除文件,那么来自服务器的所有文件都将被删除.

  • 对于mockFile.包括"accepted:true"或者如果设置了maxFiles编号,则计数器将不会与以编程方式添加的文件数同步.意味着,如果添加maxFiles设置为3的3个文件,则不会计算手动添加的前3个文件. (3认同)