拖放上传工作,但不是输入点击

时间:2014-06-30 03:51:18

标签: javascript

好的我有以下代码,可以在将图像拖放到框中时正常工作。

function drop(e) {
  e.stopPropagation();
  e.preventDefault();

    var filesArray = event.dataTransfer.files;
    for (var i=0; i<filesArray.length; i++)
    {
     var progressDiv = document.getElementById('progressDiv');
     var pbar = document.createElement('progress');
     var br = document.createElement('br');
     var report = document.createElement('div');

     pbar.setAttribute('id', 'progressBar' + i);
     pbar.setAttribute('value', '0');
     pbar.setAttribute('max', '100');
     report.setAttribute('id', 'report' + i)

     progressDiv.appendChild(pbar);
     progressDiv.appendChild(br);
     progressDiv.appendChild(report);
     progressDiv.appendChild(br);

     sendFile(filesArray[i]);
    }
}

然而,当我稍微更改代码以尝试上传时,如果用户手动点击输入类型文件按钮,则由于奇怪的原因而无法运行。

    function handleFiles(e) {
  e.stopPropagation();
  e.preventDefault();
  var files = document.getElementById("ppupload").files[0]; 
    alert(files);
    var filesArray = files;
    for (var i=0; i<filesArray.length; i++)
    {
     var progressDiv = document.getElementById('progressDiv');
     var pbar = document.createElement('progress');
     var br = document.createElement('br');
     var report = document.createElement('div');

     pbar.setAttribute('id', 'progressBar' + i);
     pbar.setAttribute('value', '0');
     pbar.setAttribute('max', '100');
     report.setAttribute('id', 'report' + i)

     progressDiv.appendChild(pbar);
     progressDiv.appendChild(br);
     progressDiv.appendChild(report);
     progressDiv.appendChild(br);

     sendFile(filesArray[i]);
    }
}

有没有让它获取文件并提交?

1 个答案:

答案 0 :(得分:0)

通过删除for循环来解决问题

function handleFiles(e) {
  e.stopPropagation();
  e.preventDefault();
  var filesArray = document.getElementById("ppupload").files[0]; 

     var progressDiv = document.getElementById('progressDiv');
     var pbar = document.createElement('progress');
     var br = document.createElement('br');
     var report = document.createElement('div');

     pbar.setAttribute('id', 'progressBar' + i);
     pbar.setAttribute('value', '0');
     pbar.setAttribute('max', '100');
     report.setAttribute('id', 'report' + i)

     progressDiv.appendChild(pbar);
     progressDiv.appendChild(br);
     progressDiv.appendChild(report);
     progressDiv.appendChild(br);

     sendFile(filesArray[i]);

}