如何使用javascript发送多个文件?没有jQuery我希望每个文件都有一个进度条?
我有这个代码,这是我的目标:如何使用javascript发送多个文件?没有jQuery我希望每个文件都有一个进度条?,javascript,ajax,progress-bar,form-data,Javascript,Ajax,Progress Bar,Form Data,我有这个代码,这是我的目标: var sendData = function(ob) { var obj = ob; return { send: function() { obj.myform.onsubmit = function(e) { var file = obj.file.files; var ajax = new XMLHttpRequest();
var sendData = function(ob) {
var obj = ob;
return {
send: function() {
obj.myform.onsubmit = function(e) {
var file = obj.file.files;
var ajax = new XMLHttpRequest();
var formdata = new FormData();
for(var i = 0; i < file.length; i++) {
formdata.append(data[], file[i]);
}
ajax.upload.onprogress = function(event) {
oojs.byID('container').innerHTML = Math.round((event.loaded / event.total)*100)+"%";
}
ajax.onload = function() {
oojs.byID('container').innerHTML = "Done";
}
ajax.onerror = function() {
oojs.byID('container').innerHTML = "Error";
}
ajax.onabort = function() {
oojs.byID('container').innerHTML = "Abort";
}
ajax.open("POST", "result.php");
ajax.send(formdata);
e.preventDefault();
}
}
}
}
oojs.sendData = sendData;
var sendData=函数(ob){
var obj=ob;
返回{
发送:函数(){
obj.myform.onsubmit=函数(e){
var file=obj.file.files;
var ajax=new-XMLHttpRequest();
var formdata=new formdata();
对于(var i=0;i
我希望每个文件都有一个进度条,但现在我只有一个进度条
for(var i = 0; i < file.length; i++) {
formdata.append(data[], file[i]);
}
for(var i=0;i
在这个循环中,每个文件都被添加到formdata中,我特别希望为每个文件发送formdata。我已经准备好试着这样做:
for(var i = 0; i < file.length; i++) {
var formdata = new FormData();
formdata.append(data, file[i]);
// ...
ajax.send(formdata);
}
for(var i=0;i
您能试试这样的吗:
function sendFile (file, progressCallback) {
var ajax = new XMLHttpRequest();
var formdata = new FormData();
formdata.append(file.name, file);
ajax.upload.onprogress = function(event) {
progressCallback(Math.round((event.loaded / event.total)*100));
};
ajax.onload = function() {
oojs.byID('container').innerHTML = "Done";
};
ajax.onerror = function() {
oojs.byID('container').innerHTML = "Error";
};
ajax.onabort = function() {
oojs.byID('container').innerHTML = "Abort";
};
ajax.open("POST", "result.php");
ajax.send(formdata);
}
var progress = 0;
var filesLength = files.length;
for(var i = 0; i < filesLength; i++) {
sendFile(files[i], function (x) {
progress = progress + x;
oojs.byID('container').innerHTML = (Math.round((progress / filesLength))) + '%';
});
}
函数sendFile(文件,progressCallback){
var ajax=new-XMLHttpRequest();
var formdata=new formdata();
formdata.append(file.name,file);
ajax.upload.onprogress=函数(事件){
progressCallback(Math.round((event.loaded/event.total)*100);
};
ajax.onload=function(){
oojs.byID('container').innerHTML=“完成”;
};
ajax.onerror=函数(){
oojs.byID('container').innerHTML=“Error”;
};
ajax.onabort=函数(){
oojs.byID('container').innerHTML=“Abort”;
};
open(“POST”、“result.php”);
发送(formdata);
}
var进程=0;
var filesLength=files.length;
对于(var i=0;i
这个神奇的数据[]值是什么?