微信小程序----封装上传图片以及获取图片【wx.chooseMedia wx.uploadFile】
封装的js
// 选择图片
function chooseMedia() {
return new Promise((resolve, reject)=>{
wx.chooseMedia({
count: 1,
mediaType: ['image'],
sourceType: ['album', 'camera'],
maxDuration: 30,
camera: 'back',
success: (res) => {
let tempFilePath = res.tempFiles[0].tempFilePath;
resolve(tempFilePath)
},
fail:(res)=>{
reject(res)
}
})
})
}
// 上传图片到服务器
function uploadFile() {
return new Promise((resolve, reject)=>{
wx.showLoading();
chooseMedia().then(path=>{
wx.uploadFile({
filePath: path,
name: 'avatar',
url: getApp().globalData.baseURL + 'login/uploadAvatar',
formData: {
'data': 'bank_img'
},
success: (res) => {
wx.hideLoading();
const datas = JSON.parse(res.data); //把数据字符串转变成对象
resolve(datas)
},
fail:(res)=>{
reject(res)
}
})
})
})
}
module.exports = {
uploadFile
}
调用封装的函数
<view class="imgt" bindtap="upimgBtn">
<image class="imgz boRadius50" src="{{avatarUrl ||'/images/arv.png'}}" mode="aspectFill"></image>
</view>
const proFunc = require('../../utils/profunc');
//上传图片到服务器
upimgBtn() {
let t = this;
proFunc.uploadFile().then(res => {
let avatarUrl= res.data.complete_img;
t.setData({
avatarUrl,
})
})
},