为了账号安全,请及时绑定邮箱和手机立即绑定

Formdata不上传多张图片

Formdata不上传多张图片

繁华开满天机 2023-04-01 16:30:03
我使用数组添加或删除要上传的 mutli 文件,当我想通过 ajax 和 formdata 上传文件时,它在我的 php 文件中不起作用并且我无法在此处捕获上传的文件是我的上传功能。var upload_images=[];//here where i saved filesfunction 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);}
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

upload_images[]访问undefined数组的属性。

如果要将数组传递给方法,请不要放在[]最后。

但是,您不想那样做。

您想要将每个文件附加到 FormData:

upload_images.forEach( image =>  fd.append('upload_images[]', image) );


查看完整回答
反对 回复 2023-04-01
?
Qyouu

TA贡献1786条经验 获得超11个赞

你不能按原样放置数组,你必须将数组中的每个文件附加到 formdata 然后发送它。


let x=upload_images.length;

for(let i=0;i<x;i++){

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

}


查看完整回答
反对 回复 2023-04-01
  • 2 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信