我使用数组添加或删除要上传的 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) );
Qyouu
TA贡献1786条经验 获得超11个赞
你不能按原样放置数组,你必须将数组中的每个文件附加到 formdata 然后发送它。
let x=upload_images.length;
for(let i=0;i<x;i++){
fd.append('upload_images[]',upload_images[i]);
}
添加回答
举报
0/150
提交
取消