这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战
一、微信小程序背景图片的使用问题
最近在使用小程序的时候,有一个需要背景图片的需求,虽然我个人感觉直接丢图片上去也不是不行,当然它终究有它的应用场景。但是背景图片只能使用网络图片,这样子很容易多发一次请求,影响性能,占用带宽,有没有比较好的解决方案?
其实还是有的,虽然不支持本地图片,但是我们可以利用将本地图片转码为base64(即把图片变成一个字符串)的方式减少一次请求,相当于是使用了本地图片!
而图片进行base64转换的编码地址:tool.oschina.net/encrypt?typ…
二、小程序图片上传的问题
图片上传一直是个比较难顶的问题,我之前写小项目的时候也多次遇到这个问题,所以跟大家分享一下。
这里我封装了一个私有的(命名带_即私有)上传图片的函数,大家复制后改一下即可用,type参数是选择打开相册(album)或者拍照上传(camera),按自己的需要填写即可。需要修改的只有url,其它诸如选取图片的个数什么的自己看看设置就行。
_helpgetPicture1(type){
var that = this;
wx.chooseImage({
count: 1,//选择图片的个数
sizeType: ['original', 'compressed'],
sourceType: [type],
success: function (res) {
that.setData({
img1: res.tempFilePaths[0],//保存所选择图片的路径
})
if (that.data.img1) {//避免用户打开不选择图片出错,加了个判断
const path1 = that.data.img1
wx.uploadFile({
url: '后端老哥给的上传图片url',
filePath: path1,//文件路径即我们上面保存的选择图片的路径
name: 'file',//name是与后端约定得到的
header: {
"Content-Type": "application/x-www-form-urlencoded",
'cookie': app.globalData.cookey
},//必须加这个,就带上session嘛
success(res) {//上传成功后写你需要的操作
console.log("人头已上传");
console.log(res.data);
},
fail(res) {
console.log("sorry we lost")
}
})
}
},
})
},