Javascript上传重复项

时间:2015-10-27 16:46:49

标签: javascript ajax upload

我有一些html,其中一个区域用户可以拖放要上传的文件。嵌套在其中的是“浏览文件”按钮,clicks()隐藏文件输入应该选择传统的上传方法。到目前为止一切运行良好,除了如果用户拖放多个文件(多个文件),它会上传每个文件两次(3个删除的文件上传6个文件)。如果用户通过浏览文件按钮上传,则不会执行此操作,因此我将其缩小到我的ondrop功能并包含在下面。如果问题不在此代码块中,我可以发布其他代码。

更新:我在droppedfile循环之前将变量for记录到控制台一次,之后注意到在for循环后记录并删除了2个文件后,变量包含2个文件列表和每个列表包含两个文件(进行4次上传)。我的for循环如何改变我的变量?

 dropzone.ondrop = function(e){
    e.preventDefault();
    this.className = 'dropzone';
    var droppedfile = e.target.files || e.dataTransfer.files;
    for (i=0; i < droppedfile.length; i++) {
       if(droppedfile[i].type != "text/plain" && droppedfile[i].type != "application/pdf" && droppedfile[i].type != "application/msword"){
           alert(droppedfile[i].type + " file types are not allowed.");
       }else{
           uploadButton.innerHTML = 'Uploading...';
           //calls a function that assigns the file to a new formdata obj and sends via ajax                      
           upload(droppedfile);

       }
    }
}

1 个答案:

答案 0 :(得分:1)

出现问题是因为每次执行for循环时都要上传这两个文件。 取代

CS

WITN

DS

或者您可以在上传

之前确保所有文件都有效
upload(droppedfile);