无法在 react-native 中发送表单数据

unable to send form-data in react-native

我在 RN 中使用 axios 发送表单数据,但它不起作用。 Noww 尝试获取除图像以外的所有上传内容。如果我使用邮递员,一切正常。

这是我的代码:

const postOrder = () => {
    var data = new FormData();
    data.append('marca', marca);
    data.append('modeo', modeo);
    data.append('option', option);
    data.append('descripcion', descripcion);
    data.append('images[]', images);
    data.append('userId', '2');
    dispatch(saveOrder(data));
  };
    fetch(`${baseUrl}/save-order`, {
    method: 'POST',
    headers: {
      Accept: 'application/json',
      'Content-Type': 'multipart/form-data',
    },
    body: data,
  })
    .then(res => res.json())
    .then(json => {
      // dispatch({type: 'ORDER', payload: response.data});
      console.log('json1', json);
    })
    .catch(error => {
      console.log(error);
    });

每个 property/feild 都是上传的,除了图片。我也试过这些方法

data.append('file', {
      uri: images,
      type: 'image/jpeg',
      name: 'images[]',
    });
data.append('file',images,'images[])
const formData = new FormData();
    formData.append('file', {
      uri: pictureUri,
      type: 'image/jpeg',
      name: 'profile-picture'
})

我有同样的问题,添加类型:'image/jpeg',到 formData 的文件属性修复了它。

A​​xios 对我不起作用,但 fetch api 对我有用。这是我的工作代码: Post函数

const postOrder = () => {
    var data = new FormData();
    data.append('marca', marca);
    data.append('modeo', modeo);
    data.append('option', option);
    data.append('description', description);
    data.append('images[]', {
      uri: images,
      name: 'image.jpg',
      type: 'image/jpeg',
    });
    data.append('userId', state.user.id);
    dispatch(saveOrder(data));
  };

获取api

 fetch(`${baseUrl}/save-order`, {
    method: 'POST',
    headers: {
      Accept: 'application/json',
      'Content-Type': 'multipart/form-data',
    },
    body: data,
  })
    .then(res => res.json())
    .then(json => {
      console.log('json1', json);
    })
    .catch(error => {
      console.log(error);
    });

如果您想发送多个文件,请执行此操作

images.forEach((item, i) => {
      data.append('images[]', {
        uri: item.path,
        type: item.mime,
        name: item.path.slice(-8, -1) + 'g',
      });
    });