Javascript fetch是否支持本机多文件上传? 总结
我正在尝试使用javascript正确设置FormData 我需要能够上传jpg/png,但我可能需要上传一些其他文件类型的pdf/csv在未来使用fetch 预期 我希望它将数据附加到表单中 错误 工作 此代码段工作正常:Javascript fetch是否支持本机多文件上传? 总结,javascript,ajax,reactjs,upload,fetch,Javascript,Ajax,Reactjs,Upload,Fetch,我正在尝试使用javascript正确设置FormData 我需要能够上传jpg/png,但我可能需要上传一些其他文件类型的pdf/csv在未来使用fetch 预期 我希望它将数据附加到表单中 错误 工作 此代码段工作正常: const formData = new FormData(document.querySelector('form')); formData.append("extraField", "This is some extra data, testing"); return
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,
});
不起作用
问题
fetch是否支持以本机方式上载多个文件?代码的问题在lineformData中; 相反,您应该上传每个运行循环的文件,并使用唯一的密钥,如下所示
const fileList = document.querySelector('input[type="file"]').files;
for(var i=0;i<fileList.length;i++) {
formData.append('file'+i, fileList.item(i));
}
我对你的代码产生了一个简单的错误。你可以在这里查看其提交的帖子数据,在这里你可以看到没有上传任何文件
在这页的底部你可以找到
我已经纠正了修饰符的错误。你可以从服务器上查看它的post数据,它显示了我上传的两个文件的详细信息
代码的问题在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));
}
我对你的代码产生了一个简单的错误。你可以在这里查看其提交的帖子数据,在这里你可以看到没有上传任何文件
在这页的底部你可以找到
我已经纠正了修饰符的错误。你可以从服务器上查看它的post数据,它显示了我上传的两个文件的详细信息
如果你想要多个文件,你可以使用这个
var input = document.querySelector('input[type="file"]')
var data = new FormData()
for (const file of input.files) {
data.append('files',file,file.name)
}
fetch('http://localhost:8080/api/upload/multi', {
method: 'POST',
body: data
})
如果你想要多个文件,你可以使用这个
var input = document.querySelector('input[type="file"]')
var data = new FormData()
for (const file of input.files) {
data.append('files',file,file.name)
}
fetch('http://localhost:8080/api/upload/multi', {
method: 'POST',
body: data
})
完美的天才完美的天才