好的我有以下代码,可以在将图像拖放到框中时正常工作。
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]);
}
}
有没有让它获取文件并提交?
答案 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]);
}