云服务器代码:
// 云函数入口文件
const cloud = require(‘wx-server-sdk’)
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
const {value} = event;
try {
const res = await cloud.openapi.security.imgSecCheck({
media: {
header: {‘Content-Type’: ‘application/octet-stream’},
contentType: ‘image/png’,
value:Buffer.from(value)
}
})
return res;
} catch (err) {
return err;
}
}
本地函数:
wx.chooseImage({count: 1}).then((res) => {
if(!res.tempFilePaths[0]){
return;
}
console.log(JSON.stringify(res))
if (res.tempFiles[0] && res.tempFiles[0].size > 1024 * 1024) {
wx.showToast({
title: ‘图片不能大于1M’,
icon: ‘none’
})
return;
}
wx.getFileSystemManager().readFile({
filePath: res.tempFilePaths[0],
success: buffer => {
console.log(buffer.data)
wx.cloud.callFunction({
name: ‘checkImg’,
data: {
value: buffer.data
}
}).then(
imgRes => {
console.log(JSON.stringify(imgRes))
if(imgRes.result.errorCode == ‘87014’){
wx.showToast({
title:‘图片含有违法违规内容’,
icon:‘none’
})
return
}else{
//图片正常
}
}
)
},
fail: err => {
console.log(err)
}
}
)
我相信做出来的人很多,但是没有分享出来,我今天分享出来就是为了避免更多程序员不要在这种简单的问题上,浪费太多的时间,我就浪费了很多时间,兼职太坑爹了
感谢。看了你的代码。关键在 wx.getFileSystemManager().readFile
我才能解决了问题。非常感谢
请问 https 调用怎么搞? 我一直是41005,小程序好像是不能使用new formData() 来包裹
老师,我一直是41005,怎么解决呢
老哥,为什么我用你代码一直报41005
楼主,我这么返回的result是空咋整啊
感谢楼主,节约了不少时间。
Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID local_debug_a707c1c0-0260-4050-a4bf-40bd37e478ea, cloud function service error code -1, error message request entity too large; at cloud.callFunction api; 啥情况
{"tempFilePaths":["wxfile://tmp_eb4763bc72a0aa7ee336d235bf1801d360bc4c081ce27e4b.jpg"],"errMsg":"chooseImage:ok","tempFiles":[{"path":"wxfile://tmp_eb4763bc72a0aa7ee336d235bf1801d360bc4c081ce27e4b.jpg","size":84035}]}
choose.js:996 ArrayBuffer {}byteLength: 84035__proto__: ArrayBuffer
[publib]:1429 [process] unhandledRejection Error: errCode: -404012 error while waiting for the result | errMsg: cloud.callFunction:fail error while waiting for the result; at cloud.callFunction api;
at new u ([publib]:1)
at d ([publib]:1)
at f ([publib]:1)
at [publib]:1
at [publib]:1
at Object.next ([publib]:1)
at n ([publib]:1)
at <anonymous>
咋我用你的在开发者工具上可以,但在手机上直接报这个错呢,求指教
万分感谢楼主