Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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
Javascript 如何允许在Dropzone.js失败后重新提交文件上载?_Javascript_File Upload_Dropzone.js - Fatal编程技术网

Javascript 如何允许在Dropzone.js失败后重新提交文件上载?

Javascript 如何允许在Dropzone.js失败后重新提交文件上载?,javascript,file-upload,dropzone.js,Javascript,File Upload,Dropzone.js,我有一个文件上传表单,它使用Dropzone.js将文件上传到我的服务器。一个用户一次最多可以上传5个文件,但我有一个独特的情况:如果服务器端出现任何单个文件错误(超过最大大小、错误的mime类型、错误的文件类型等),我不需要将任何文件添加到我的数据库中。这不是问题 我遇到的问题是客户端对它的处理。为什么当我从服务器得到响应时,我不能再通过单击“提交”(其元素绑定到事件处理程序,如下所示)再次上传文件 调用processQueue()后,将从Dropzone队列中删除文件。您不能再通过单击“提交

我有一个文件上传表单,它使用Dropzone.js将文件上传到我的服务器。一个用户一次最多可以上传5个文件,但我有一个独特的情况:如果服务器端出现任何单个文件错误(超过最大大小、错误的mime类型、错误的文件类型等),我不需要将任何文件添加到我的数据库中。这不是问题

我遇到的问题是客户端对它的处理。为什么当我从服务器得到响应时,我不能再通过单击“提交”(其元素绑定到事件处理程序,如下所示)再次上传文件


调用
processQueue()
后,将从Dropzone队列中删除文件。您不能再通过单击“提交”上载文件,因为队列中没有文件

您需要在收到响应后将每个文件重新添加到队列中

如果文件服务器端出现错误,最好将响应的状态代码设置为200以外的值,以便覆盖Dropzone错误侦听器

    this.on("error", function(file, errorMessage) {
        $.each(dropZone.files, function(i, file) {
            file.status = Dropzone.QUEUED
        });

        $.each(message, function(i, item) {
            $("#dropzoneErrors .errors ul").append("<li>" + message[i] + "</li>")
        });
    });
this.on(“错误”,函数(文件,错误消息){
$.each(dropZone.files,函数(i,文件){
file.status=Dropzone.QUEUED
});
$。每个(消息、功能(i、项){
$(“#dropzoneErrors.errors ul”)。追加(“
  • ”+消息[i]+“
  • ”) }); });
    单击“提交”以何种方式失败?什么都没发生吗?你有错误吗?如果没有错误,你能上传更多吗?这个dropbox问题可能会有所帮助,就像我一直在寻找的解决方案一样。非常感谢
        this.on("error", function(file, errorMessage) {
            $.each(dropZone.files, function(i, file) {
                file.status = Dropzone.QUEUED
            });
    
            $.each(message, function(i, item) {
                $("#dropzoneErrors .errors ul").append("<li>" + message[i] + "</li>")
            });
        });