评论

云服务器调用security.imgSecCheck完成代码分享

云服务器调用security.imgSecCheck完成代码分享

云服务器代码:
// 云函数入口文件
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)
                }
            }
        )
        
        
        我相信做出来的人很多,但是没有分享出来,我今天分享出来就是为了避免更多程序员不要在这种简单的问题上,浪费太多的时间,我就浪费了很多时间,兼职太坑爹了
最后一次编辑于  07-26  
点赞 5
收藏
评论

4 个评论

  • A 🍀  红孩子2
    A 🍀 红孩子2
    2天前

    {"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> 

    咋我用你的在开发者工具上可以,但在手机上直接报这个错呢,求指教

    2天前
    赞同
    回复
  • Amber张欠鱼
    Amber张欠鱼
    11-25

    万分感谢楼主

    11-25
    赞同
    回复
  • 尚尚
    尚尚
    10-11

    谢谢楼主

    10-11
    赞同
    回复
  • 影子邪
    影子邪
    08-02

    楼主,请问header: {‘Content-Type’: ‘application/octet-stream’}这句话是做什么用的?

    08-02
    赞同
    回复 4
    • 满眼星辰
      满眼星辰
      08-05
      传参数为流的形式,我找了很多,看他们都带着,我也就带上了。代码是有效的...
      08-05
      回复
    • 影子邪
      影子邪
      08-05
      好的,谢谢楼主
      08-05
      回复
    • Daniel.Wu
      Daniel.Wu
      10-02
      问一下,这个调用在ide里抓不到请求的么?text检测是可以抓到的
      10-02
      回复
    • 满眼星辰
      满眼星辰
      10-14
      忘记了...换了家公司,不做小程序了,浪费我的才华
      10-14
      回复