有没有小伙伴在写小程序的时候遇到这个问题,编辑或者新建用户时,用户不上传头像,需要一个默认的头像。作者在之前遇到过一次这个需求,记录一下这次踩坑经历。
//把其他的逻辑都刨除了,只剩下上传图片
const clickBtn = ()=>{
//因为是使用静态资源所以不能使用wx.chooseImage
let path = '图片的静态资源路径(/static/icon/headerImg.png)'
wx.uploadFile({
url: proxy.$server.bindStudentInfo,
filePath: path,
header: {
Authorization: `JWT ${token}`,
},
name: 'headImage',
formData: query,
timeout: 10000,
success(res) {
}
})
}
//写成上边这样,如果不上传图片也可提交信息,亲测可用,但是仅限安卓,ios系统就会报错,不知道为什么,提交为线上版本后,使用苹果手机点击提交就会报错,具体原因我也不是很清楚,反正结果就是找不到这个图片,如果各位小伙伴有什么好办法可以评论给我。
=========================================================================
//于是后来我找到了一个方法,他的名字叫wx.compressImage,这个方法是用来压缩图片质量的,具体用法如下。
wx.compressImage({
src: '', // 图片路径
quality: 80 // 压缩质量
success(res){
//他这里会生成一个临时的文件,他就是res.tempFilePath
}
})
=========================================================================
//所以我们可以酱紫
const clickBtn = ()=>{
wx.compressImage({
src: '/static/icon/headerImg.png', // 图片路径就写静态资源的路径就好了
quality: 80,
success(res){
let path = res.tempFilePath
wx.uploadFile({
url: proxy.$server.bindStudentInfo,
filePath: path,
header: {
Authorization: `JWT ${token}`,
},
name: 'headImage',
formData: query,
timeout: 10000,
success(res) {
}
})
}
})
}
//这样就可以利用微信的临时文件上传啦