javascript - React Native 中的 FormData 抛出空白对象
问题描述
在我的 React Native 项目中,我react-native-image-picker
用于图像上传。在这里,我使用 formData 上传图片。图像 URL 在那里,但是当我控制台 formData 它显示 {}。我不知道为什么会这样。这是代码:
uploadImageAsync = async (imgUri, token) => {
let apiUrl = 'url';
let formData = new FormData();
let uriParts = imgUri.split('.');
let fileType = uriParts[uriParts.length - 1];
//generate some random number for the filename
var randNumber1 = Math.floor(Math.random() * 100);
var randNumber2 = Math.floor(Math.random() * 100);
formData.append('image', {
uri: imgUri,
name: `photo-${randNumber1}-${randNumber2}.${fileType}`,
type: `image/${fileType}`,
});
console.log('formData :', formData);
let options = {
method: 'POST',
body: formData,
headers: {
Accept: 'application/json',
Authorization: 'Bearer ' + token,
'Content-Type': 'multipart/form-data',
'Cache-Control': 'no-cache',
},
};
const response = await fetch(apiUrl, options);
const json = await response.json();
}
};
formData 的控制台不显示任何数据,但imgUri
包含图像路径。为什么 formData 没有显示数据?
解决方案
FormData.append()的value
属性可以是 a或 a 。因此,您可以尝试对对象进行字符串化,然后选择性地解析字符串数据。USVString
Blob
const imageData = {
uri: imgUri,
name: `photo-${randNumber1}-${randNumber2}.${fileType}`,
type: `image/${fileType}`,
};
const formData = new FormData();
formData.append("image", JSON.stringify(imageData));
const formImageData = formData.get("image");
const parsedFormImageData = JSON.parse(formImageData);
console.log(parsedFormImageData );
推荐阅读
- neural-network - 调用 fit() 函数时的索引问题
- python - 如何在具有许多列的熊猫数据框中生成所有可能的列组合?
- reactjs - react-apollo GraphQL 查询 - this.client.watchQuery 不是函数
- bixby - 如何启用 Bixby Studio 以在电视、手表和电器(冰箱)上进行开发
- reactjs - 有没有办法使用 GreenSock (GSAP) 在 React 中为 SVG 组件设置动画?
- c++ - 动态分配对象中的字段 - 更好的动态或静态分配?C++
- git - 如何为每个项目设置 yarn version-tag-prefix 和 version-git-message?
- docker - 让 docker build --memory-swap=20g 使用可用的交换空间?
- r - 使用 scatter3D() (package plot3D) 在 R 中绘制多元线性回归
- javascript - 行为不同的外部 JS 文件