Android 在 React-Native App 中使用 Axios 将图像上传到服务器时出现问题

标签 android react-native multipartform-data axios form-data

尝试从 Android 上传/发布图片时出现以下网络错误。在 iOS 上完美运行。当 FormData 中不包含图像时,在 Android 上完美运行。

export function formatAvatarData(uri) {
  const form = new FormData();
  form.append('avatar', {
    uri: uri,
    type: 'file',
    name: 'image.jpg',
  });
  return form;
}

iOS - [这按预期工作] uri: file:///Users/bobfriston/Library/Developer/CoreSimulator/Devices/16E84C5E-2545-408C-B870-38054DFA3471/data/Containers/Data/Application/7D2F59E5-450A-4A60-962A-D5C368DCD8DF/文档/图像/F5AD02D9-6C3E-46E5-B54E-D5C98206BAAA.jpg

Android URI - [这会导致如下网络错误] uri: content://com.google.android.apps.photos.contentprovider/0/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F79/ORIGINAL/NONE/1408072274

Error: Network Error
    at createError (createError.js:15)
    at XMLHttpRequest.handleError (xhr.js:87)
    at XMLHttpRequest.dispatchEvent (event-target.js:172)
    at XMLHttpRequest.setReadyState (XMLHttpRequest.js:542)
    at XMLHttpRequest.__didCompleteResponse (XMLHttpRequest.js:378)

注意事项: “ native react ”:“=0.42.3”

AndroidManifest.xml 包含以下权限:

android.permission.INTERNET"
android.permission.SYSTEM_ALERT_WINDOW"/>
android.permission.CAMERA" />
android.permission.WRITE_EXTERNAL_STORAGE"/>

最佳答案

尝试将type更改为image/jpeg:

export function formatAvatarData(uri) {
  const form = new FormData();
  form.append('avatar', {
    uri: uri,
    type: 'image/jpeg', // <-- this
    name: 'image.jpg',
  });
  return form;
}

关于Android 在 React-Native App 中使用 Axios 将图像上传到服务器时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44966138/

相关文章:

android - React Native, Native Android Module 在 View 中添加 TextView

react-native - 如何在 react-native 中创建渐变文本

reactjs - React Native - React Navigation 在每个页面上显示页眉和页脚

java - 服务器上的 Resteasy 客户端字节数组为空

java - Android - 如何检查另一个逗号分隔字符串中是否存在字符串值

java - 如何获取数组中json子元素的值

android - 在 RecyclerView 适配器中获取 TextView 行数?

android - React-Native Android CodePush 设置不下载更新

javascript - 无法使用 fetch 发送多部分,但 axios 工作正常

java - maxUploadsize 和 maxInMemorySize 之间的区别