尝试将映像从React Native上传到AWS Server时,我遇到了一些问题。这是我的代码:
async function uploadImageAsync(uri) {
console.log(uri);
let apiUrl = '...'
let uriParts = uri.split('.');
let fileType = uri[uri.length - 1];
let formData = new FormData();
formData.append('image', {
uri,
name: `image.jpg`,
filename: `image.jpg`,
});
let options = {
method: 'POST',
body: formData,
headers: {
Accept: 'application/json',
'Content-Type': 'multipart/form-data',
},
};
return fetch(apiUrl, options);
}
在控制台打印出的结果是:
file:///data/user/0/host.exp.exponent/cache/ExperienceData/%2540gh%252Ftp2/ImagePicker/37c89140-2172-4566-98a2-e7393ea72e89.jpg
Object {
"uploadResponse": undefined,
}
Object {
"uploadResult": undefined,
}
Object {
"e": [TypeError: Network request failed],
}
我做的是从图像选择器中选择一个图像,然后我将其上传到AWS服务器。如果成功,打印出成功消息。如果失败,请在上面的控制台中打印出来。
奇怪的是,它设法上传到iOS而不是Android上传。任何想法为什么会这样?
谢谢!
我不确定您是否正在尝试将文件上传到AWS S3服务,但如果您是,则可以查看AWS Amplify React Native,它可能会对您有所帮助。
通过使用此库,您可以通过以下方式上传文件:
Storage.put('test.txt', 'Hello')
.then (result => console.log(result))
.catch(err => console.log(err));
我有类似的问题,最后解决了。所以我想我可以给你一个提示。
这是获取代码的一部分
https://gist.github.com/zeroFruit/d46d4cae57e5e8cf59e1b541c0bf322e