300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 微信小程序 图片处理:压缩 上传 审核

微信小程序 图片处理:压缩 上传 审核

时间:2021-12-21 09:27:42

相关推荐

微信小程序 图片处理:压缩 上传 审核

一、图片压缩

这API目前从小程序开发工具没法调试

得用真机调试

// 压缩开始pressImage({src: tempFilePaths[0], // 图片路径quality: 0, // 压缩质量success: res => {console.log("压缩前:", tempFilePaths[0])console.log("压缩后:", res.tempFilePath)},fail: error => {console.log("error", error)}});// 压缩结束

二、图片上传和审核

方法一:把文件传到云存储,云函数根据fileID获取buffer(得及时删除文件)

小程序端js代码(负责图片上传):

console.log('my-image' + tempFilePaths[0].match(/\.[^.]+?$/)[0])// 在此添加内容审核机制wx.cloud.uploadFile({cloudPath: 'my-image' + tempFilePaths[0].match(/\.[^.]+?$/)[0],filePath: tempFilePaths[0],success: res => {wx.showToast({icon: 'none',title: '正在加载图片...',})console.log('上传成功:', res)wx.cloud.callFunction({name: 'checkImg',data: {contentType: 'image/jpg',fileID: res.fileID}}).then(res => {console.log("检测结果", res.result);if (res.result.errCode == 0) {this.setData({bgPic: tempFilePaths[0],picChoosed: true});} else {this.setData({bgPic: '../../image/ban.jpg',picChoosed: true});wx.showToast({icon: 'none',title: '图片含有敏感信息,换张图吧~',})}})},fail: e => {console.error('上传失败:', e)}})

云函数checkImg:(云函数配置看这里)

// 云函数入口函数 图片下载和鉴别exports.main = async(event, context) => {const fileID = event.fileIDconst res = await cloud.downloadFile({fileID: fileID,})const buffer = res.fileContenttry {var result = await cloud.openapi.security.imgSecCheck({media: {contentType: event.contentType,value: buffer}});return result} catch (err) {return err}}

方法二:小程序端图片转换base64,直接把buffer传到云函数处理(就是有点卡)

小程序端js:

// 审核开始console.log("内容审核机制启动...");console.log(res);// 转base64let base64 = wx.getFileSystemManager().readFileSync(res.tempFilePath, 'base64')// console.log(base64)// console.log("access_token =", this.data.accessToken);console.log("图片地址 = ", tempFilePaths[0])//调用云函数wx.cloud.callFunction({// 云函数名称name: 'checkImg',// 传给云函数的参数data: {contentType: 'image/jpg',value: base64},}).then(res => {// this.setData({// picPassed: res.result.pic_passed// });console.log("errCode: ", res.result.errCode);console.log("errMsg: ", res.result.errMsg);// 图片不合法if (res.result.errCode == 87014) {this.setData({bgPic: '../../image/ban.jpg'});} else {this.setData({bgPic: tempFilePaths[0]});}console.log('Img validation check: ', this.data.picPassed);console.log('Original Img: ', tempFilePaths[0]);}).catch(console.error);// 审核结束

云函数:

// 云函数入口文件const cloud = require('wx-server-sdk')cloud.init({env: cloud.DYNAMIC_CURRENT_ENV})exports.main = async(event, context) => {try {console.log('check img...');console.log('contentType :', event.contentType);console.log('value :', Buffer.from(event.value));var result = await cloud.openapi.security.imgSecCheck({media: {contentType: event.contentType,value: Buffer.from(event.value)}});return result} catch (err) {return err}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。