"Unrecognized FormData part." React native (android) 使用 XMLHttpRequest 上传视频时出错

"Unrecognized FormData part." error on React native (android) Video upload with XMLHttpRequest

我正在尝试将视频上传到 cloudinary,下面的代码在 ios 上运行,但在上传开始时几乎立即在 Android 上出现错误,错误是 Unrecognized FormData part.

let {api_key, api_secret, cloud_name, url} = CLOUDINARY_CONFIG;
let timestamp = (Date.now() / 1000 | 0).toString();
let hash_string = `eager_async=true&folder=${endpoint}&timestamp=${timestamp}&use_filename=true${api_secret}`;
let signature = CryptoJS.SHA1(hash_string).toString();
let formData = new FormData();
formData.append('timestamp', timestamp);
formData.append('api_key', api_key);
formData.append('signature', signature);
formData.append('eager_async', true);

formData.append('file', {uri: body.uri, type: 'video/mp4', name: `video_${timestamp}.mp4`});
formData.append('eager', [{width: 720}]);

formData.append('folder', endpoint);
formData.append('use_filename', true);
let xhr = new XMLHttpRequest();
xhr.open('POST', url);

xhr.onerror = (event) => {
next(actionWith({
  type: failureType,
  params
}));
};

xhr.send(formData);

最初 body.uri 的路径无效,它需要 file://

的前缀

找到解决方案,问题是由于某种原因无法设置适用于 iOS 的宽度。

删除行 formData.append('eager', [{width: 720}]); 解决了问题。