Javascript Dropzone:防止添加文件两次

Javascript Dropzone:防止添加文件两次,javascript,dropzone.js,multifile-uploader,Javascript,Dropzone.js,Multifile Uploader,我正在使用dropzone将图像上传到gallery。我按按钮提交。是否可以防止两次添加同一文件?我不确定是检查姓名还是姓名和尺码。这是我的密码: <script> var i = 0; Dropzone.options.myDropzone = { init: function() { this.on("addedfile", function(file) { i=++i; var i=0;

我正在使用dropzone将图像上传到gallery。我按按钮提交。是否可以防止两次添加同一文件?我不确定是检查姓名还是姓名和尺码。这是我的密码:

<script>
      var i = 0;
      Dropzone.options.myDropzone = {
        init: function() {
            this.on("addedfile", function(file) {
            i=++i;

var i=0;
Dropzone.options.myDropzone={
init:function(){
this.on(“addedfile”,函数(文件){
i=++i;
在此处检查其他文件的文件名和文件大小

----------->if(){
                myDropzone.removeFile(file);
            }


            var inputs = Dropzone.createElement('<div class="dz-image-metadata"><label for="'+i+'_title">Nazov</label><input type="hidden" name="'+i+'_filename" value="'+file.name+'"><input type="text" name="'+i+'_title" value="'+file.name+'" /><label for="">Popis</label><input type="text" name="'+i+'_desc"></div>');
            file.previewElement.appendChild(inputs);
            var removeButton = Dropzone.createElement("<button class=\"dz-button\">Vymazať</button>");
            var _this = this;
            removeButton.addEventListener("click", function(e) {
              e.preventDefault();
              e.stopPropagation();
              i=--i;
              _this.removeFile(file);
            });
            file.previewElement.appendChild(removeButton);
          });
          var myDropzone = this;
           $("#submit-all").click(function (e) {
            e.preventDefault();
            e.stopPropagation();
            myDropzone.processQueue();
            i=0;
        }
        );

         this.on("successmultiple", function(files, response) {
           console.log(response);
        });

         this.on("complete", function(file) {
            myDropzone.removeFile(file);
        });

        this.on("errormultiple", function(files, response) {
             });
        },
        autoProcessQueue: false,
        previewsContainer: ".dropzone",
        uploadMultiple: true,
        parallelUploads: 25,
        maxFiles: 25,
      };
    </script>
------------>如果(){
myDropzone.removeFile(文件);
}
var inputs=Dropzone.createElement('NazovPopis');
file.previewElement.appendChild(输入);
var removeButton=Dropzone.createElement(“Vymazať”);
var_this=这个;
removeButton.addEventListener(“单击”),函数(e){
e、 预防默认值();
e、 停止传播();
i=--i;
_此.removeFile(文件);
});
file.previewElement.appendChild(removeButton);
});
var myDropzone=this;
$(“#全部提交”)。单击(功能(e){
e、 预防默认值();
e、 停止传播();
myDropzone.processQueue();
i=0;
}
);
此.on(“successmultiple”,函数(文件、响应){
控制台日志(响应);
});
此.on(“完成”,函数(文件){
myDropzone.removeFile(文件);
});
此.on(“errormultiple”函数(文件、响应){
});
},
自动处理队列:false,
PreviewContainer:“.dropzone”,
uploadMultiple:true,
并行上传:25,
最大文件数:25,
};

检查文件名和大小应该可以。我已经测试过了,它对我来说几乎没什么问题

我登陆的原始线程是一个社区成员发布他的解决方案,用于验证名称和大小


该技巧也在中提到。

添加以下简单的代码行:

myDropzone.on("addedfile", function(file) {
    if (this.files.length) {
        var _i, _len;
        for (_i = 0, _len = this.files.length; _i < _len - 1; _i++) // -1 to exclude current file
        {
            if(this.files[_i].name === file.name && this.files[_i].size === file.size && this.files[_i].lastModified.toString() === file.lastModified.toString())
            {
                this.removeFile(file);
            }
        }
    }
});
myDropzone.on(“addedfile”,函数(文件){ if(this.files.length){ 变量i,_len; 对于(_i=0,_len=this.files.length;_i<_len-1;_i++)/1,排除当前文件 { 如果(this.files[\u i].name==file.name&&this.files[\u i].size==file.size&&this.files[\u i].lastModified.toString()==file.lastModified.toString()) { 此.removeFile(文件); } } } });
this.on(“addedfile”,函数(文件){
if(this.files.length){
var i,len,pre;
对于(i=0,len=this.files.length;i
我不确定我做错了什么,我将代码复制粘贴到我的dropzone.js,但仍然可以上载同一个文件两次。我使用了你的答案代码,但在添加代码后,图像预览没有显示在我的
div
?你能帮我吗?这只是通知用户他们正在上传一个重复的文件,但上传仍然进行。
 this.on("addedfile", function (file) {
                    if (this.files.length) {
                        var i, len, pre;
                        for (i = 0, len = this.files.length; i < len - 1; i++) {
                            if (this.files[i].name == file.name) {
                                alert("The Doc.: " + file.name + " is already registered.")
                                return (pre = file.previewElement) != null ? pre.parentNode.removeChild(file.previewElement) : void 0;
                            }
                        }
                    }
                });