微信小程序?qū)徍司芙^,拒絕原因是用戶上傳圖片可能存在違法違規(guī)問題两芳,程序必須有審核機制。
解決方法如下(云開發(fā)):
config.json
{
"permissions": {
"openapi": [
"security.imgSecCheck"
]
}
}
云函數(shù)
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;
}
}
js
ChooseImage() {
wx.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album'],
success: (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 => {
if (imgRes.result.errCode == '87014') {
wx.showToast({
title: '圖片含有違法違規(guī)內(nèi)容',
icon: 'none'
})
return
} else {
//圖片正常
if (this.data.imgList.length != 0) {
this.setData({
imgList: this.data.imgList.concat(res.tempFilePaths)
})
} else {
this.setData({
imgList: res.tempFilePaths
})
}
}
}
)
},
fail: err => {
console.log(err)
}
})
}
});
},
長期廣告:我在開發(fā)中遇到的更多的坑都已經(jīng)記錄在easyDemo小程序中,希望我的demo能給你easy蛔趴。我還會持續(xù)更新easyDemo,歡迎收藏例朱。