node.js - 反应本机中的图像上传未到达服务器
问题描述
我正在使用 react native 将图像发送到 nodeJs 服务器。我注意到,当我提出请求时,请求中有一个图像文件,但响应失败,说文件上传需要照片。然而,该请求在邮递员上完美运行。这是代码示例。我正在使用反应原生图像裁剪选择器来选择图像。
const choosePhotoFromLibrary = () => {
ImagePicker.openPicker({
width: 300,
height: 400,
cropping: true,
// multiple: true,
multiple: false,
mediaType: 'photo'
}).then((image) => {
setPhotos(image.path)
}).catch(err => {
console.log(err);
})
}
getStoreId()
const createProduct = async () => {
console.log(typeof photos);
const data = new FormData()
data.append('name', productName)
data.append('description', description)
data.append('price', price)
data.append('category', productCategory)
data.append('sub-category', productSubCategory)
data.append('condition', productCondition)
data.append('photos', photos)
data.append('type', `Women's wear`)
console.log(data);
var config = {
method: 'post',
url:url,
headers: {
'token': token,
'Content-Type': 'multipart/form-data'
},
data: data
};
try {
const product = await axios(config)
console.log(product);
} catch (err) {
console.log(err.response);
}
解决方案
代替
data.append('photos', photos)
像这样写
data.append('photos', {
name: "Example.jpg",
uri: photos, // This should be something like 'file://...'
type: "image/jpg" // MIME type of file
})
推荐阅读
- c - C 错误:获取临时数组的地址
- python - ImportError:没有名为 obd 的模块
- python - 问:如何在 python 中计算带有测量误差的斜率?
- algorithm - 在未排序的数组中查找第 x 个最小元素
- sql - 根据另一个表 SQL Server (Transact-SQL) 中的条件更新一个表中的列
- python - 如何在“startswith”方法中打印整个字符串
- c - CS50 拼写器 (PSET 5) 未加载字典
- python - 如何仅限 Enum 成员访问属性和方法?
- reactjs - 如何使用 reactjs 重置表的值?
- angular - 当元素进入视野时触发 CountUp 功能