Formdata不上传多张图片

我使用数组添加或删除要上传的 mutli 文件,当我想通过 ajax 和 formdata 上传文件时,它在我的 php 文件中不起作用并且我无法在此处捕获上传的文件是我的上传功能。


var upload_images=[];//here where i saved files

function upload_images(){

    const fd = new FormData();

    const xhr = new XMLHttpRequest();


    fd.append('upload_images[]',upload_images[]);

    xhr.open('POST','upload.php', true);

    xhr.send(fd);


    xhr.onreadystatechange = function() {

        if (xhr.readyState == 4 && xhr.status == 200) {

            upload_images=[];

            let i=0;i2=upload_url.length;

            for(let i=0;i<i2;i++){URL.revokeObjectURL(upload_url[i]);}

            upload_url=[];


        }

    };


    xhr.upload.addEventListener("progress", function(e) {

        if (e.lengthComputable) {

          progress_bar.value=Math.round((e.loaded * 100) / e.total);

        }

      }, false);



}


繁华开满天机
浏览 99回答 2
2回答

侃侃尔雅

upload_images[]访问undefined数组的属性。如果要将数组传递给方法,请不要放在[]最后。但是,您不想那样做。您想要将每个文件附加到 FormData:upload_images.forEach(&nbsp;image&nbsp;=>&nbsp;&nbsp;fd.append('upload_images[]',&nbsp;image)&nbsp;);

Qyouu

你不能按原样放置数组,你必须将数组中的每个文件附加到 formdata 然后发送它。let x=upload_images.length;for(let i=0;i<x;i++){fd.append('upload_images[]',upload_images[i]);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript