微信小程序通过云调用校验一张图片是否含有违法违规内容。
选择图片:
wx.chooseImage({
count: 6,
sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function(res) {
var tempFiles = res.tempFiles
tempFiles.forEach((ele,index)=>{
if (ele && ele.size > 1024 * 1024) {
toast('图片不能大于1M')
return;
}
// 图片转化buffer后,调用云函数
wx.getFileSystemManager().readFile({
filePath: ele.path,
success: res => {
let check_img = check_img_Func(res.data)
check_img.then(res => {
//图片是否违规
if (res.result.errCode && res.result.errCode == 87014){
toast('图片含有违法违规内容')
}
}).catch(console.error)
},
fail: err => {
reject(err);
}
});
})
}
})
引用云函数:
const check_img_Func = function(img) {
return wx.cloud.callFunction({
// 云函数名称
name: 'check_img',
// 传给云函数的参数
data: ({
img: img
}),
})
}
check_img/index.js:
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
try {
var result = await cloud.openapi.security.imgSecCheck({
media: {
contentType: 'image/png',
value: Buffer.from(event.img)
}
})
return result
} catch (err) {
return err
}
}
check_img/config.json和package.json中加入配置一下代码:
{
"permissions": {
"openapi": [
"security.imgSecCheck"
]
}
}
本篇博客旨在记录了自己在小程序编程过程中碰到的一部分问题,如有错误的地方欢迎指正