从iPhone上传到S3的jpeg图像不可读.但是在photoshop上工作

THp*_*ubs 5 javascript amazon-s3 react-native react-native-camera axios

我正在尝试使用预先签名的网址将iOS设备上的jpeg图像上传到S3.这是我正在做的事情:

const file = {
  uri: imageURL,
  type: 'image/jpeg'
};

const formData = new FormData();
formData.append('photo', file);
formData.append('Content-Type', 'image/jpeg');

const response = await axios({
  method: 'PUT',
  headers: {
    'Content-Type': 'multipart/form-data'
  },
  url: s3PreSignedURL,
  data: formData
});
Run Code Online (Sandbox Code Playgroud)

(该应用程序是本机反应,我使用react-native-camera拍摄照片.)

问题是图像上传了.当我下载它并尝试在我的Mac上查看它说The file could not be opened.但如果我在Photoshop中打开它就可以了.知道发生了什么事吗?

您可以在此处找到示例图片:https://s3-ap-southeast-1.amazonaws.com/eyesnapdev/scans/1509856619481-7180​​9992-b818-4637-93f1-9a75b6588c2c.jpg

Shu*_*ngh 1

看来你不用来formData发送图像,而应该是这样的:

const file = {
  uri: imageURL,
  type: 'image/jpeg'
};

const formData = new FormData();
formData.append('photo', file);
formData.append('Content-Type', 'image/jpeg');

const response = await axios({
  method: 'PUT',
  headers: {
    'Content-Type': 'multipart/form-data'
  },
  url: s3PreSignedURL,
  data: formData // not **file**
});
Run Code Online (Sandbox Code Playgroud)