【发布时间】:2015-10-27 16:46:49
【问题描述】:
我有一些 html,其中包含用户可以拖放文件以上传的区域。嵌套在其中的是一个“浏览文件”按钮,如果他们选择传统的上传方法,clicks() 是一个隐藏的文件输入。到目前为止一切正常,除了如果用户拖放多个文件(多个文件),它会将每个文件上传两次(3 个删除的文件上传 6 个文件)。如果用户通过浏览文件按钮上传,则不会执行此操作,因此我将其缩小到我的 ondrop 函数并将其包括在下面。如果问题不在此代码块中,我可以发布其他代码。
更新:我在 for 循环之前和之后将我的变量 droppedfile 记录到控制台一次,并注意到当在 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);
}
}
}
【问题讨论】:
标签: javascript ajax upload