我将在React Native中的Amazon S3上上传图片。
我有S3 signedUrl用于上传图片。
如何在React Native中使用此网址上传图片?
如果有人试过这个,请帮助我。
谢谢!
答案 0 :(得分:4)
这很简单,我花了很多时间发现:
const xhr = new XMLHttpRequest()
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
// success
} else {
// failure
}
}
}
xhr.open('PUT', presignedUrl)
xhr.setRequestHeader('Content-Type', fileType)
xhr.send({ uri: filePath, type: fileType, name: fileName })
来源:http://blog.rudikovac.com/react-native-upload-any-file-to-s3-with-a-presigned-url/
答案 1 :(得分:0)
您可以按以下方式使用fetch
:
import { ImagePickerIOS } from 'react-native';
ImagePickerIOS.openSelectDialog({},(assetUri)=>{
var photo = {
uri: assetUri,
type: 'image/jpeg',
name: 'main.jpg'
}
var body = new FormData();
body.append('file', photo);
fetch(presignedUrl, {
method: 'put', body: body
});
},()=>{ console.log('failed'); })
答案 2 :(得分:0)
const file = {
uri: response.uri,
name: "image.png",
type: "image/png"
}
const options = {
keyPrefix: "",
bucket: "",
region: "",
accessKey: "",
secretKey: "",
successActionStatus: 200
}
RNS3.put(file, options).then(response => {
if (response.status !== 200)
alert(response.body);
else {
//Success##
----------
##
alert(JSON.stringify(response))
}
});