我正在尝试使用javascript正确设置我的FormData.
我需要能够上传jpg / png,但我可能需要在将来使用fetch上传一些其他文件类型pdf / csv.
预期
我希望它将数据附加到表单
工作
这个片段工作正常:
const formData = new FormData(document.querySelector('form'));
formData.append("extraField", "This is some extra data, testing");
return fetch('http://localhost:8080/api/upload/multi', {
method: 'POST',
body: formData,
});
不工作
const formData = new FormData();
const input = document.querySelector('input[type="file"]');
formData.append('files', input.files);
题
解决方法:
代码的问题在于lineformData.append(‘files’,input.files);
而不是那样,你应该上传每个运行带有唯一键的循环的文件,如下所示
const fileList = document.querySelector('input[type="file"]').files;
for(var i=0;i<fileList.length;i++) {
formData.append('file'+i, fileList.item(i));
}
我用你的代码创建了一个简单的错误小提琴here.您可以在此处查看其提交的帖子数据,您可以在其中看到没有上传任何文件.
我修正了小提琴here.您可以从服务器检查其’postt数据,它显示我上传的两个文件的详细信息.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。