如何在react-native中使用表单数据使用axios上传图像

pjngdqdw  于 2023-08-04  发布在  iOS
关注(0)|答案(1)|浏览(160)

我尝试在react native中使用axios和formData捕获图像后上传图像。我使用react-native-camera包来捕获图像。
我已经检查了其他类似的答案,但没有一个是工作。
这是我尝试过的两种方法,但都不起作用。我收到错误:下面方法中的网络错误

let bodyFormData = new FormData();
  bodyFormData.append(`q_image_${serial}`, {
    uri: 'file:///data/user/0/com.student/cache/Camera/b6217266-35d5-4a0c-b09e-0c9f12777194.jpg', 
    type: 'image/jpeg',
    name: 'someName',
  });
  
  const { data } = await axios({
    method: 'post',
    url: `${baseURL}/service.php`,
    headers: {
      'Content-Type': 'multipart/form-data' 
    },
    data: bodyFormData
  });

  console.log('UPLOAD', data);

字符串
x1c 0d1x的数据
我得到的图像没有上传的响应从服务器与下面的方法。

let bodyFormData = new FormData();
  bodyFormData.append(`q_image_${serial}`, 'file:///data/user/0/com.student/cache/Camera/b6217266-35d5-4a0c-b09e-0c9f12777194.jpg');
  
  const { data } = await axios({
    method: 'post',
    url: `${baseURL}/service.php`,
    headers: {
      'Content-Type': 'multipart/form-data' 
    },
    data: bodyFormData
  });

  console.log('UPLOAD', data);


服务器工作正常。我可以上传一个图像使用 Postman 。



这是react-native-camera或formData或axios的问题吗?
编辑:我找到了。我正在使用react-native版本0.62.*,这是github上的一个开放问题。

7cjasjjr

7cjasjjr1#

我已经发现了这个问题,目前这是react-native的一个开放问题。如果任何人面临相同的问题并且使用RN版本0.62.*,请按照以下步骤操作。
1.在gradle.properties中,将Flipper版本更改为0.52.0

FLIPPER_VERSION=0.52.0

字符串
由于某种原因,我得到了一个multi-dex错误,如果你也面临同样的问题,那么:
1.在app/build.gradle中添加

implementation 'com.android.support:multidex:1.0.3'


1.在app/build.gradle的defaultConfig中添加multiDexEnabled true

defaultConfig {
   applicationId "com.packageName"
   minSdkVersion rootProject.ext.minSdkVersion
   targetSdkVersion rootProject.ext.targetSdkVersion
   versionCode 1
   versionName "1.0"
   multiDexEnabled true
}

相关问题