Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript发送多个文件?没有jQuery我希望每个文件都有一个进度条?_Javascript_Ajax_Progress Bar_Form Data - Fatal编程技术网

如何使用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
这个神奇的数据[]值是什么?