使用react-native-image-crop-picker上傳圖片
阿新 • • 發佈:2019-01-24
使用reac-native的圖片上傳外掛image-crop-picker上傳圖片的時候遇到了好多坑,真是把我坑慘了。
安裝
安裝可以參考外掛提供的方法去安裝。需要注意的是,如果android或者ios是有人負責的話就不要link了。link會自動關聯程式碼會把客戶端的程式碼變的不是你想要的。
呼叫相簿
import ImagePicker from 'react-native-image-crop-picker';
async function openImage(){
let image = await ImagePicker.openPicker({
width: 750 ,
height: 750,
cropping: true
});
}
//返回image物件,其中path就是剪下之後的圖片地址
這個地方問題不大,有問題也可以去網上找找。
上傳圖片
這個地方要注意一下:
1.使用formdata去上傳圖片
2.上傳檔案的格式是固定的,除了uri以外的值不要變
3.這裡的loading是用來控制loading動畫的
4.實際的上傳地址是類似”/Users/path/devices/xxxxx.jpg”這樣的
let data = new FormData();
let file = { uri: image.path, type : "multipart/form-data", name: "image.png" };
data.append("imgFile", file);
try {
let res = await uploadImage("/uploadImg.do", data);
this.setState({
loading: false
});
console.log(res)
toast("上傳成功!");
} catch (err) {
console.log(err)
toast("圖片太大,請重新選擇");
this.setState({
loading : false
});
}
let uploadImage=async function(url,data){
return await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'multipart/form-data;charset=utf-8'
},
body: data
});
}
上傳成功
檢視日誌是否成功