页面按钮
<button bindtap="addImg" class="addPng" type="default">添加图片</button>
js:使用上传图片之前肯定要先选择图片,所以在此之前要使用wx.chooseImage()选择图片,然后在上传图片
addImg : function(){
wx.chooseImage({//选择图片
count : 1, //规定选择图片的数量,默认9
sizeType : [”original”,”compressed”], //规定图片的尺寸, 原图/压缩图
sourceType : [‘album’,’camera’], //从哪里选择图片, 相册/相机
success : (chooseres)=>{ //接口调用成功的时候执行的函数
//console.log(chooseres);
//选择图片后可以在这里上传
wx.cloud.uploadFile({
cloudPath: "img/" + new Date().getTime() +"-"+ Math.floor(Math.random() * 1000),//云储存的路径及文件名
filePath : chooseres.tempFilePaths[0], //要上传的图片/文件路径 这里使用的是选择图片返回的临时地址
success : (uploadres) => { //上传图片到云储存成功
//console.log(uploadres)
wx.showLoading({ //显示加载提示框 不会自动关闭 只能wx.hideLoading关闭
title : “图片上传中”, //提示框显示的提示信息
mask : true, //显示透明蒙层,防止触摸。为true提示的时候不可以对屏幕进行操作,不写或为false时可以操作屏幕
success : function () {
setTimeout(function(){ //使用定时让提示框消失
wx.hideLoding() //让提示框隐藏、消失
}, 1000); //定时时间(ms)这里表示消息提示框显示后1s执行wx.hideLoding(),即消息提示框显示1秒
}
});
},
fail : (err) => {
console.log(err)
}
})
},
fail : (err) => {
console.log(err)
}
})
}
success:(chooseres):
上面的代码中success的返回值chooseres中有三个参数,第一个就是返回的消息,第二个是图片的临时地址列表(数组),不管选择的数量是1还是其他,都是数组,所以取特定位置的值的时候都需要用下标来取;
第三个是文件对象数组,其中每个位置存放了文件的临时地址path和文件的大小size
cloudPath: "img/" + new Date().getTime() +"-"+ Math.floor(Math.random() * 1000):
路径文件夹以 “/” 分割 如果”/”前面的文件夹没有,则会自动创建”/”后面是文件名;
success : (uploadres)返回值中有消息、fileID(文件访问路径)、和HTTP状态码
但是和选择不一样的是,每次上传只能上传一张图片,所以每次返回的fileID是文件的访问路径是单一的对应图片访问路径
至此小程序的云开发图片上传就完成了