先在template里面设置点击事件,代码举例:
<view>
<image :src="avatarUrl"></image>
<view @click="tapImage">点击上传照片</view>
</view>
然后JS部分在data处声明avatarUrl的默认图片,接着在methods处写tapImage方法
tapImage() {
uni.chooseImage({
//上传图片的数量,默认是9
count: 1,
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
success: res => {
let path = res.tempFilePaths[0];
// 返回选定照片的本地文件路径列表,tempFilePath可作为img标签的src属性显示图片
var tempFilePath = res.tempFilePaths;
uni.uploadFile({
url: '后端提供的上传图片的接口,建议使用封装域名',
filePath: path,
name: 'file', //后端通过'file'获取上传的文件对象
formData: {
'token': 用户登录时的token,
},
success: (res) => {
var picture = JSON.parse(res.data).data.src;
this.avatarUrl = '封装域名' + picture;
}
});
},
})
},