使用表单数据上载和获取图像时出现问题

时间:2019-06-12 16:36:54

标签: react-native fetch form-data charles-proxy

我有一个React Native应用程序,该应用程序使用fetch上传一些文本数据和图像。我们最近注意到并非所有图像都保存在服务器上。向查尔斯放火,我发现其中一些图像看起来格式不正确,不确定到底是什么原因或原因。

通过测试,我尝试了不同的图像,相同的图像等,但似乎仍然存在此问题。在下面的屏幕截图中,您可以看到请求以及如何仅一张图像具有正确的数据。我不确定这些符号的含义或为什么在那里。

Charles response

如您在代码中所见,我将以完全相同的方式添加两个图像。

// data is my object that contains job info, image meta info, etc..
const formData = new FormData();
formData.append("sc", JSON.stringify(data));

// append call images
data.SavedImages.forEach(image => {
  if (image.meta && image.meta.uri) {
    formData.append(`image_sc_${image.ImageID}`, {
      uri: image.meta.uri,
      type: "image/jpeg",
      name: data.CallID
    });
  }
});

//append equip images
data.Equip.forEach(e => {
  e.SavedImages.forEach(image => {
    if (image.meta && image.meta.uri) {
      formData.append(`image_equip_${image.ImageID}`, {
        uri: image.meta.uri,
        type: "image/jpeg",
        name: image.EquipmentID
      });
    }
  });
});


return fetch(Api.buildURL("ServiceCallPayload"), {
  method: "POST",
  body: formData
})

我希望图像都以正确的格式包含在请求中,但会以某种方式损坏。

1 个答案:

答案 0 :(得分:0)

我的同事发现了这个问题,name属性必须具有正确的文件扩展名,否则将被视为文本。

// append call images
data.SavedImages.forEach(image => {
  if (image.meta && image.meta.uri) {
    formData.append(`image_sc_${image.ImageID}`, {
      uri: image.meta.uri,
      type: "image/jpeg",
      name: data.CallID + '.jpeg'
    });
  }
});