React native 将本机上载文件发送到multer,我得到的缓冲区为空

React native 将本机上载文件发送到multer,我得到的缓冲区为空,react-native,axios,multer,React Native,Axios,Multer,我正在用React Native制作一个应用程序,用NodeJS制作后端。VueJS的代码与VueJS完全相同(除了我从输入中获取文件),从输入和邮递员处可以正常工作,但我在React Native上遇到了问题 应用程序中的代码: const formdata = new FormData() const file = myMainImage console.log(file) const fileName = file.split("/").reverse()[0]; fo

我正在用React Native制作一个应用程序,用NodeJS制作后端。VueJS的代码与VueJS完全相同(除了我从输入中获取文件),从输入和邮递员处可以正常工作,但我在React Native上遇到了问题

应用程序中的代码:

const formdata = new FormData()
const file = myMainImage
console.log(file)
const fileName = file.split("/").reverse()[0];
formdata.append('media', {
  url: file,
  name: fileName,
  type: 'image/jpeg'
})
await profileApi.uploadMyMainImage(formdata)
以及对后端的请求(使用axios和fetch进行了尝试)

但在后端,我总是从req.file获得:

 

 {
  fieldname: 'media',
  originalname: 'DADE2091-0C50-456B-8F89-408CCAD98E02.jpg',
  encoding: '7bit',
  mimetype: 'image/jpeg',
  buffer: <Buffer >,
  size: 0
}

{
字段名:“媒体”,
原始名称:“DADE2091-0C50-456B-8F89-408CCAD98E02.jpg”,
编码:“7bit”,
mimetype:'image/jpeg',
缓冲区:,
尺寸:0
}
有什么想法吗?我认为它可能与正在上载的文件有关,所以我将其视为流,但同样的问题也发生了,我也将其上载到AWS S3,但当我将其取回时,文件是空的,无法打开。 图像uri正在从相机中拍摄。我还尝试删除文件:/,但没有成功


感谢您的帮助

如果有人看到了这一点,我找不到解决方案,所以我决定将其编码为base 64,并以JSON的形式发送。我也有同样的问题,经过大量的研究,我发现我使用的是
source
,在你的例子中,问题是你使用
url
而不是
uri
作为
formdata.append(…)
 

 {
  fieldname: 'media',
  originalname: 'DADE2091-0C50-456B-8F89-408CCAD98E02.jpg',
  encoding: '7bit',
  mimetype: 'image/jpeg',
  buffer: <Buffer >,
  size: 0
}