这是js中的上传逻辑
var upload = function(){
if(_file.files.length === 0){
return;
}
var data = new FormData();
data.append('SelectedFile', _file.files[0]);
var request = new XMLHttpRequest();
request.onreadystatechange = function(){
if(request.readyState == 4){
try {
var resp = JSON.parse(request.response);
} catch (e){
var resp = {
status: 'error',
data: 'Unknown error occurred: [' + request.responseText + ']'
};
}
console.log(resp.status + ': ' + resp.data);
}
};
request.upload.addEventListener('progress', function(e){
_progress.style.width = Math.ceil(e.loaded/e.total) * 100 + '%';
}, false);
request.open('POST', 'upload.php');
request.send(data);
}
每次用户选择时都会运行该功能,但如果用户选择了多个文件,我只会得到第一个文件。
答案 0 :(得分:1)
那是因为您只是将第一个文件添加到数据对象中:
data.append('SelectedFile', _file.files[0]);
您需要在_file.files集合中添加所有文件 类似的东西:
for(var i = 0 ; i < _file.files.length; i++ ) {
data.append('SelectedFile'+i, _file.files[i]);
}
答案 1 :(得分:-1)
var data = new FormData();
data.append('SelectedFile', _file.files[0]);
而不是这段代码,尝试这样的事情:
var data = new FormData();
for (var i in _file.files) data.append('SelectedFile'+i, _file.files[i]);