亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

用云開發(fā)Cloudbase實現小程序多圖片內容安全監(jiān)測的代碼詳解

 更新時間:2020年06月07日 10:41:02   作者:騰訊云開發(fā)TCB  
這篇文章主要介紹了用云開發(fā)Cloudbase實現小程序多圖片內容安全監(jiān)測,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前言

相比于文本的安全檢測,圖片的安全檢測要稍微略復雜一些,當您讀完本篇,將get到

  • 圖片安全檢測的應用場景
  • 解決圖片的安全校驗的方式
  • 使用云調用方式對圖片進行檢測
  • 如何對上傳圖片大小進行限制
  • 如何解決多圖上傳覆蓋問題

示例效果

當用戶上傳敏感違規(guī)圖片時,禁止用戶上傳發(fā)布,并且做出相對應的用戶友好提示

應用場景

通常,在校驗一張圖片是否含有違法違規(guī)內容相比于文本安全的校驗,同樣重要,有如下應用

圖片智能鑒黃:涉及拍照的工具類應用(如美拍,識圖類應用)用戶拍照上傳檢測;電商類商品上架圖片檢測;媒體類用戶文章里的圖片檢測等敏感人臉識別:用戶頭像;媒體類用戶文章里的圖片檢測;社交類用戶上傳的圖片檢測等,凡是有用戶自發(fā)生產內容的都應當提前做檢測

解決圖片的安全手段

在小程序開發(fā)中,提供了兩種方式

  • HTTPS調用
  • 云調用

HTTPS 調用的請求接口地止

https://api.weixin.qq.com/wxa/img_sec_check?access_token=ACCESS_TOKEN

檢測圖片審核,根據官方文檔得知,需要兩個必傳的參數:分別是:access_token(接口調用憑證),media(要檢測的圖片文件)

對于HTTPS調用方式,愿意折騰的小伙伴可以參考文本內容安全檢測(上篇)的處理方式,處理大同小異,本篇主要以云開發(fā)的云調用為主

功能實現:小程序端邏輯

對于wxml與wxss,大家可以自行任意修改,本文重點在于圖片安全的校驗

<view class="image-list">
<!-- 顯示圖片 -->
 <block wx:for="{{images}}" wx:key="*this"><view class="image-wrap">
 <image class="image" src="{{item}}" mode="aspectFill" bind:tap="onPreviewImage" data-imgsrc="{{item}}"></image><i class="iconfont icon-shanchu" bind:tap="onDelImage" data-index="{{index}}"></i></view>
 </block>
 <!-- 選擇圖片 -->
 <view class="image-wrap selectphoto" hidden="{{!selectPhoto}}" bind:tap="onChooseImage"><i class="iconfont icon-add"></i></view>
 </view>
 <view class="footer"><button class="send-btn" bind:tap="send">發(fā)布</button>
 </view>

對應的wxss代碼

.footer {
 display: flex;
 align-items: center;
 width: 100%;
 box-sizing: border-box;
 background: #34bfa3;
}

.send-btn {
 width: 100%;
 color: #fff;
 font-size: 32rpx;
 background: #34bfa3;
}

button {
 border-radius: 0rpx;
}

button::after {
 border-radius: 0rpx !important;
}

/* 圖片樣式 */
.image-list {
 display: flex;
 flex-wrap: wrap;
 margin-top: 20rpx;
}

.image-wrap {
 width: 220rpx;
 height: 220rpx;
 margin-right: 10rpx;
 margin-bottom: 10rpx;
 position: relative;
 overflow: hidden;
 text-align: center;
}

.image {
 width: 100%;
 height: 100%;
}

.icon-shanchu {
 position: absolute;
 top: 0;
 right: 0;
 width: 40rpx;
 height: 40rpx;
 background-color: #000;
 opacity: 0.4;
 color: #fff;
 text-align: center;
 line-height: 40rpx;
 font-size: 38rpx;
 font-weight: bolder;
}

.selectphoto {
 border: 2rpx dashed #cbd1d7;
 position: relative;
}

.icon-add {
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translate(-50%, -50%);
 color: #cbd1d7;
 font-size: 60rpx;
}

最終呈現的UI,由于只是用于圖片檢測演示,UI方面可忽略,如下所示

對應的JS代碼

/*
* 涉及到的API:wx.chooseImage 從本地相冊選擇圖片或使用相機拍照
*(https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.chooseImage.html)


*
*
*/// 最大上傳圖片數量
const MAX_IMG_NUM = 9;

const db = wx.cloud.database(); // 初始化云數據庫
Page({

 /**
 * 頁面的初始數據
 */
 data: {
 images: [], // 把上傳的圖片存放在一個數組對象里面
 selectPhoto: true, // 添加+icon元素是否顯示
 },

 /**
 * 生命周期函數--監(jiān)聽頁面加載
 */
 onLoad: function (options) {

 },

 // 選擇圖片
 onChooseImage() {
 // 還能再選幾張圖片,初始值設置最大的數量-當前的圖片的長度
 let max = MAX_IMG_NUM - this.data.images.length; 
 wx.chooseImage({
 count: max,  // count表示最多可以選擇的圖片張數
 sizeType: ['original', 'compressed'], // 所選的圖片的尺寸
 sourceType: ['album', 'camera'], // 選擇圖片的來源
 success: (res) => {   // 接口調用成功的回調函數console.log(res)
 this.setData({   // tempFilePath可以作為img標簽的src屬性顯示圖片,下面是將后添加的圖片與之前的圖片給追加起來
  images: this.data.images.concat(res.tempFilePaths)
 })
 // 還能再選幾張圖片
 max = MAX_IMG_NUM - this.data.images.length
 this.setData({
  selectPhoto: max <= 0 ? false : true // 當超過9張時,加號隱藏
 })
 },
 })
 },

 // 點擊右上方刪除圖標,刪除圖片操作
 onDelImage(event) {
 const index = event.target.dataset.index;
 // 點擊刪除當前圖片,用splice方法,刪除一張,從數組中移除一個       
 this.data.images.splice(index, 1)
 this.setData({
 images: this.data.images
 })
 // 當添加的圖片達到設置最大的數量時,添加按鈕隱藏,不讓新添加圖片
 if (this.data.images.length == MAX_IMG_NUM - 1) {
 this.setData({
 selectPhoto: true,
 })
 }
 },
})

最終實現的前端UI效果如下所是:

您現在看到的效果,沒有任何云函數代碼,只是前端的純靜態(tài)展示,對于一些涉嫌敏感圖片,是有必要進行做過濾處理的

功能實現:云函數側邏輯

在cloudfunctions目錄文件夾下創(chuàng)建云函數imgSecCheck

并在該目錄下創(chuàng)建config.json,配置參數如下所示

{
 "permissions": {
 "openapi": [
 "security.imgSecCheck"
 ]
 }
}

配置完后,在主入口index.js中,如下所示,通過security.imgSecCheck接口,并傳入media對象

// 云函數入口文件
const cloud = require('wx-server-sdk');
cloud.init({
 env: cloud.DYNAMIC_CURRENT_ENV
})

// 云函數入口函數
exports.main = async (event, context) => {
 const wxContext = cloud.getWXContext()
 try {
 const result = await cloud.openapi.security.imgSecCheck({
 media: {
 contentType: 'image/png',
 value: Buffer.from(event.img) // 這里必須要將小程序端傳過來的進行Buffer轉化,否則就會報錯,接口異常
 }
 
 })

 if (result && result.errCode.toString() === '87014') {
 return { code: 500, msg: '內容含有違法違規(guī)內容', data: result }
 } else {
 return { code: 200, msg: '內容ok', data: result }
 }
 } catch (err) {
 // 錯誤處理
 if (err.errCode.toString() === '87014') {
 return { code: 500, msg: '內容含有違法違規(guī)內容', data: err }
 }
 return { code: 502, msg: '調用imgSecCheck接口異常', data: err }
 }
}

您會發(fā)現在云函數端,就這么幾行代碼,就完成了圖片安全校驗

而在小程序端,代碼如下所示

// miniprogram/pages/imgSecCheck/imgSecCheck.js
// 最大上傳圖片數量
const MAX_IMG_NUM = 9;

const db = wx.cloud.database()
Page({

 /**
 * 頁面的初始數據
 */
 data: {
 images: [],
 selectPhoto: true, // 添加圖片元素是否顯示
 },

 /**
 * 生命周期函數--監(jiān)聽頁面加載
 */
 onLoad: function (options) {

 },
 // 選擇圖片
 onChooseImage() {
 // const that = this; // 如果下面用了箭頭函數,那么這行代碼是不需要的,直接用this就可以了的// 還能再選幾張圖片,初始值設置最大的數量-當前的圖片的長度
 let max = MAX_IMG_NUM - this.data.images.length; 
 wx.chooseImage({
 count: max,
 sizeType: ['original', 'compressed'],
 sourceType: ['album', 'camera'],
 success: (res) => { // 這里若不是箭頭函數,那么下面的this.setData的this要換成that上面的臨時變量,作用域的問題,不清楚的,可以看下this指向相關的知識
 console.log(res)
 // tempFilePath可以作為img標簽的src屬性顯示圖片
 const tempFiles = res.tempFiles;
 this.setData({
  images: this.data.images.concat(res.tempFilePaths)
 })
 // 在選擇圖片時,對本地臨時存儲的圖片,這個時候,進行圖片的校驗,當然你放在最后點擊發(fā)布時,進行校驗也是可以的,只不過是一個前置校驗和后置校驗的問題,我個人傾向于在選擇圖片時就進行校驗的,選擇一些照片時,就應該在選擇時階段做安全判斷的, 小程序端請求云函數方式// 圖片轉化buffer后,調用云函數
 console.log(tempFiles);
 tempFiles.forEach(items => {
  console.log(items);
  // 圖片轉化buffer后,調用云函數
  wx.getFileSystemManager().readFile({
  filePath: items.path,
  success: res => {
   console.log(res);
   wx.cloud.callFunction({ // 小程序端請求imgSecCheck云函數,并傳遞img參數進行檢驗
   name: 'imgSecCheck',
   data: {
   img: res.data
   }
  })
  .then(res => {
  console.log(res);
  let { errCode } = res.result.data;
  switch(errCode) {
   case 87014:
   this.setData({
   resultText: '內容含有違法違規(guī)內容'
   })
   break;
   case 0:
   this.setData({
   resultText: '內容OK'
   })
   break;
   default:
   break;
  }
 
  })
  .catch(err => {
  console.error(err);
  })
  },
  fail: err => {
  console.error(err);
  }
  })
 })
 
  
 // 還能再選幾張圖片
 max = MAX_IMG_NUM - this.data.images.length
 this.setData({
  selectPhoto: max <= 0 ? false : true // 當超過9張時,加號隱藏
 })
 },
 })
 },

 // 刪除圖片
 onDelImage(event) {
 const index = event.target.dataset.index;
 // 點擊刪除當前圖片,用splice方法,刪除一張,從數組中移除一個
 this.data.images.splice(index, 1);
 this.setData({
 images: this.data.images
 })
 // 當添加的圖片達到設置最大的數量時,添加按鈕隱藏,不讓新添加圖片
 if (this.data.images.length == MAX_IMG_NUM - 1) {
 this.setData({
 selectPhoto: true,
 })
 }
 },
})

示例效果如下所示:

至此,關于圖片安全檢測就已經完成了,您只需要根據檢測的結果,做一些友好的用戶提示,或者做一些自己的業(yè)務邏輯判斷即可

常見問題

如何對上傳的圖片大小進行限制

有時候,您需要對用戶上傳圖片的大小進行限制,限制用戶任意上傳超大圖片,那怎么處理呢,在微信小程序里面,主要借助的是wx.chooseImage這個接口成功返回后臨時路徑的res.tempFiles中的size大小判斷即可進行處理

具體實例代碼如下所示

// 選擇圖片
 onChooseImage() {
 // 還能再選幾張圖片,初始值設置最大的數量-當前的圖片的長度
 let max = MAX_IMG_NUM - this.data.images.length; 
 wx.chooseImage({
 count: max,
 sizeType: ['original', 'compressed'],
 sourceType: ['album', 'camera'],
 success: (res) => {
 console.log(res)
 const tempFiles = res.tempFiles;
 this.setData({
  images: this.data.images.concat(res.tempFilePaths) // tempFilePath可以作為img標簽的src屬性顯示圖片
 })
 // 在選擇圖片時,對本地臨時存儲的圖片,這個時候,進行圖片的校驗,當然你放在最后點擊發(fā)布時,進行校驗也是可以的,只不過是一個前置校驗和后置校驗的問題,我個人傾向于在選擇圖片時就進行校驗的,選擇一些照片時,就應該在選擇時階段做安全判斷的, 小程序端請求云函數方式// 圖片轉化buffer后,調用云函數
 console.log(tempFiles);
 tempFiles.forEach(items => {
  if (items && items.size > 1 * (1024 * 1024)) { // 限制圖片的大小
  wx.showToast({
  icon: 'none',
  title: '上傳的圖片超過1M,禁止用戶上傳',
  duration: 4000
  })
  // 超過1M的圖片,禁止用戶上傳
  }
  console.log(items);
  // 圖片轉化buffer后,調用云函數
  wx.getFileSystemManager().readFile({
  filePath: items.path,
  success: res => {
   console.log(res);
   wx.cloud.callFunction({ // 請求調用云函數imgSecCheck
   name: 'imgSecCheck',
   data: {
   img: res.data
   }
  })
  .then(res => {
  console.log(res);
  let { errCode } = res.result.data;
  switch(errCode) {
   case 87014:
   this.setData({
   resultText: '內容含有違法違規(guī)內容'
   })
   break;
   case 0:
   this.setData({
   resultText: '內容OK'
   })
   break;
   default:
   break;
  }
  })
  .catch(err => {
  console.error(err);
  })
  },
  fail: err => {
  console.error(err);
  }
  })
 })
 
 // 還能再選幾張圖片
 max = MAX_IMG_NUM - this.data.images.length
 this.setData({
  selectPhoto: max <= 0 ? false : true // 當超過9張時,加號隱藏
 })
 },
 })
 },

注意: 使用微信官方的圖片內容安全接口進行校驗,限制圖片大小限制:1M,否則的話就會報錯

也就是說,對于超過1M大小的違規(guī)圖片,微信官方提供的這個圖片安全接口是無法進行校驗的

這個根據自己的業(yè)務而定,在小程序端對用戶上傳圖片的大小進行限制如果您覺得微信官方提供的圖片安全接口滿足不了自己的業(yè)務需求,那么可以選擇一些其他的圖片內容安全校驗的接口的

這個圖片安全校驗是非常有必要的,用戶一旦上傳非法圖片,一旦通過網絡進行傳播,產生了社會影響,平臺是有責任的,這種前車之鑒是有的

如何解決多圖上傳覆蓋的問題

對于上傳圖片來說,這個wx.cloud.uploadFileAPI接口只能上傳一張圖片,但是很多時候,是需要上傳多張圖片到云存儲當中的,當點擊發(fā)布的時候,我們是希望將多張圖片都上傳到云存儲當中去的

這個API雖然只能每次上傳一張,但您可以循環(huán)遍歷多張圖片,然后一張一張的上傳的

在cloudPath上傳文件的參數當中,它的值:需要注意:文件的名稱

那如何保證上傳的圖片不被覆蓋,文件不重名的情況下就不會被覆蓋

而在選擇圖片的時候,不應該上傳,因為用戶可能有刪除等操作,如果直接上傳的話會造成資源的浪費

而應該在點發(fā)布按鈕的時候,才執(zhí)行上傳操作,文件不重名覆蓋的示例代碼如下所示

 let promiseArr = []
 let fileIds = [] // 將圖片的fileId存放到一個數組中
 let imgLength = this.data.images.length;
 // 圖片上傳
 for (let i = 0; i < imgLength; i++) {
 let p = new Promise((resolve, reject) => {
 let item = this.data.images[i]
  // 文件擴展名
  let suffix = /\.\w+$/.exec(item)[0]; // 取文件后拓展名
  wx.cloud.uploadFile({ // 利用官方提供的上傳接口
  cloudPath: 'blog/' + Date.now() + '-' + Math.random() * 1000000 + suffix, // 云存儲路徑,您也可以使用es6中的模板字符串進行拼接的
  filePath: item, // 要上傳文件資源的路徑
  success: (res) => {
  console.log(res);
  console.log(res.fileID)
  fileIds = fileIds.concat(res.fileID) // 將新上傳的與之前上傳的給拼接起來
  resolve()
  },
  fail: (err) => {
  console.error(err)
  reject()
  }
  })
 })
 promiseArr.push(p)
 }
 // 存入到云數據庫,其中這個Promise.all(),等待里面所有的任務都執(zhí)行之后,在去執(zhí)行后面的任務,也就是等待上傳所有的圖片上傳完后,才能把相對應的數據存到數據庫當中,具體與promise相關問題,可自行查漏
 Promise.all(promiseArr).then((res) => {
  db.collection('blog').add({ // 查找blog集合,將img,時間等數據添加到這個集合當中
  data: {
  img: fileIds,
  createTime: db.serverDate(), // 服務端的時間
  }
  }).then((res) => {
  console.log(res);
  this._hideToastTip();
  this._successTip();
  })
 })
 .catch((err) => {
  // 發(fā)布失敗console.error(err);
 })

上面通過利用當前時間+隨機數的方式進行了一個區(qū)分,規(guī)避了上傳文件同名的問題

因為這個上傳接口,一次性只能上傳一張圖片,所以需要循環(huán)遍歷圖片,然后一張張的上傳

一個是上傳到云存儲中,另一個是添加到云數據庫集合當中,要分別注意下這兩個操作,云數據庫中的圖片是從云存儲中拿到的,然后再添加到云數據庫當中去的

示例效果如下所示:

將上傳的圖片存儲到云數據庫中

注意:添加數據到云數據庫中,需要手動創(chuàng)建集合,不然是無法上傳不到云數據庫當中的,會報錯

至此,關于敏感圖片的檢測,以及多圖片的上傳到這里就已經完成了

如下是完整的小程序端邏輯示例代碼

// miniprogram/pages/imgSecCheck/imgSecCheck.js
// 最大上傳圖片數量
const MAX_IMG_NUM = 9;
const db = wx.cloud.database()
Page({

 /**
 * 頁面的初始數據
 */
 data: {
 images: [],
 selectPhoto: true, // 添加圖片元素是否顯示
 },

 /**
 * 生命周期函數--監(jiān)聽頁面加載
 */
 onLoad: function (options) {

 },

 // 選擇圖片
 onChooseImage() {
 // 還能再選幾張圖片,初始值設置最大的數量-當前的圖片的長度
 let max = MAX_IMG_NUM - this.data.images.length;
 wx.chooseImage({
 count: max,
 sizeType: ['original', 'compressed'],
 sourceType: ['album', 'camera'],
 success: (res) => {
 console.log(res)
 const tempFiles = res.tempFiles;
 this.setData({
  images: this.data.images.concat(res.tempFilePaths) // tempFilePath可以作為img標簽的src屬性顯示圖片
 })
 // 在選擇圖片時,對本地臨時存儲的圖片,這個時候,進行圖片的校驗,當然你放在最后點擊發(fā)布時,進行校驗也是可以的,只不過是一個前置校驗和后置校驗的問題,我個人傾向于在選擇圖片時就進行校驗的,選擇一些照片時,就應該在選擇時階段做安全判斷的, 小程序端請求云函數方式
 // 圖片轉化buffer后,調用云函數
 console.log(tempFiles);
 tempFiles.forEach(items => {
  if (items && items.size > 1 * (1024 * 1024)) {
  wx.showToast({
  icon: 'none',
  title: '上傳的圖片超過1M,禁止用戶上傳',
  duration: 4000
  })
  // 超過1M的圖片,禁止上傳
  }
  console.log(items);
  // 圖片轉化buffer后,調用云函數
  wx.getFileSystemManager().readFile({
  filePath: items.path,
  success: res => {
  console.log(res);
  this._checkImgSafe(res.data); // 檢測圖片安全校驗
  },
  fail: err => {
  console.error(err);
  }
  })
 })


 // 還能再選幾張圖片
 max = MAX_IMG_NUM - this.data.images.length
 this.setData({
  selectPhoto: max <= 0 ? false : true // 當超過9張時,加號隱藏
 })
 },
 })
 },

 // 刪除圖片
 onDelImage(event) {
 const index = event.target.dataset.index;
 // 點擊刪除當前圖片,用splice方法,刪除一張,從數組中移除一個
 this.data.images.splice(index, 1);
 this.setData({
 images: this.data.images
 })
 // 當添加的圖片達到設置最大的數量時,添加按鈕隱藏,不讓新添加圖片
 if (this.data.images.length == MAX_IMG_NUM - 1) {
 this.setData({
 selectPhoto: true,
 })
 }
 },

 // 點擊發(fā)布按鈕,將圖片上傳到云數據庫當中
 send() {
 const images = this.data.images.length;
 if (images) {
 this._showToastTip();
 let promiseArr = []
 let fileIds = []
 let imgLength = this.data.images.length;
 // 圖片上傳
 for (let i = 0; i < imgLength; i++) {
 let p = new Promise((resolve, reject) => {
  let item = this.data.images[i]
  // 文件擴展名
  let suffix = /\.\w+$/.exec(item)[0]; // 取文件后拓展名
  wx.cloud.uploadFile({ // 上傳圖片至云存儲,循環(huán)遍歷,一張張的上傳
  cloudPath: 'blog/' + Date.now() + '-' + Math.random() * 1000000 + suffix,
  filePath: item,
  success: (res) => {
  console.log(res);
  console.log(res.fileID)
  fileIds = fileIds.concat(res.fileID)
  resolve()

  },
  fail: (err) => {
  console.error(err)
  reject()
  }
  })
 })
 promiseArr.push(p)
 }
 // 存入到云數據庫
 Promise.all(promiseArr).then((res) => {
  db.collection('blog').add({ // 查找blog集合,將數據添加到這個集合當中
  data: {
  img: fileIds,
  createTime: db.serverDate(), // 服務端的時間
  }
  }).then((res) => {
  console.log(res);
  this._hideToastTip();
  this._successTip();
  })
 })
 .catch((err) => {
  // 發(fā)布失敗
  console.error(err);
 })
 } else {
 wx.showToast({
 icon: 'none',
 title: '沒有選擇任何圖片,發(fā)布不了',
 })
 }

 },

 // 校驗圖片的安全
 _checkImgSafe(data) {
 wx.cloud.callFunction({
 name: 'imgSecCheck',
 data: {
  img: data
 }
 })
 .then(res => {
 console.log(res);
 let {
  errCode
 } = res.result.data;
 switch (errCode) {
  case 87014:
  this.setData({
  resultText: '內容含有違法違規(guī)內容'
  })
  break;
  case 0:
  this.setData({
  resultText: '內容OK'
  })
  break;
  default:
  break;
 }
 })
 .catch(err => {
 console.error(err);
 })
 },

 _showToastTip() {
 wx.showToast({
 icon: 'none',
 title: '發(fā)布中...',
 })
 },

 _hideToastTip() {
 wx.hideLoading();
 },

 _successTip() {
 wx.showToast({
 icon: 'none',
 title: '發(fā)布成功',
 })
 },
})

完整的示例wxml,如下所示

<view class="image-list">
<!-- 顯示圖片 -->
<block wx:for="{{images}}" wx:key="*this">
 <view class="image-wrap"><image class="image" src="{{item}}" mode="aspectFill" bind:tap="onPreviewImage" data-imgsrc="{{item}}"></image><i class="iconfont icon-shanchu" bind:tap="onDelImage" data-index="{{index}}"></i>
 </view>
</block>
<!-- 選擇圖片 -->
<view class="image-wrap selectphoto" hidden="{{!selectPhoto}}" bind:tap="onChooseImage"><i class="iconfont icon-add"></i></view>
</view>
<view class="footer">
 <button class="send-btn" bind:tap="send">發(fā)布</button>
</view>
<view>
 檢測結果顯示: {{ resultText }}
</view>

您可以根據自己的業(yè)務邏輯需要,一旦檢測到圖片違規(guī)時,禁用按鈕狀態(tài),或者給一些用戶提示,都是可以的,在發(fā)布之前或者點擊發(fā)布時,進行圖片內容安全的校驗都可以,一旦發(fā)現圖片有違規(guī)時,就不讓繼續(xù)后面的操作的

結語

本文主要通過借助官方提供的圖片security.imgSecCheck

接口,實現了對圖片安全的校驗,實現起來,是相當的方便的,對于基礎性的校驗,利用官方提供的這個接口,已經夠用了的,但是如果想要更加嚴格的檢測,可以引入一些第三方的內容安全強強校驗,確保內容的安全

實現了如何對上傳的圖片大小進行限制,以及解決同名圖片上傳覆蓋的問題

如果大家對文本內容安全校驗以及圖片安全校驗仍然有什么問題,可以在下方留言,一起探討。

公眾號:騰訊云云開發(fā)

騰訊云云開發(fā):https://cloudbase.net

云開發(fā)控制臺:https://console.cloud.tencent.com/tcb?from=12304

總結

到此這篇關于用云開發(fā)Cloudbase實現小程序多圖片內容安全監(jiān)測的文章就介紹到這了,更多相關小程序云開發(fā)多圖片內容安全檢測內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Layer+Echarts構建彈出層折線圖的方法

    Layer+Echarts構建彈出層折線圖的方法

    今天小編就為大家分享一篇Layer+Echarts構建彈出層折線圖的方法,具有很的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 使用JavaScript修改瀏覽器URL地址欄的實現代碼

    使用JavaScript修改瀏覽器URL地址欄的實現代碼

    這篇文章主要介紹了如何使用JavaScript修改瀏覽器URL地址欄,需要的朋友可以參考下
    2013-10-10
  • JS實現自定義彈窗功能

    JS實現自定義彈窗功能

    瀏覽器自帶的原生彈窗很不美觀,而且功能比較單一,絕大部分時候我們都會按照設計圖自定義彈窗或者直接使用注入layer的彈窗等等。下面小編給大家?guī)砹薐S實現自定義彈窗,感興趣的朋友一起看看吧
    2018-08-08
  • 微信小程序錄音與播放錄音功能

    微信小程序錄音與播放錄音功能

    這篇文章主要介紹了微信小程序錄音與播放錄音功能,小程序中提供了兩種錄音的API,舊版本錄音功能和新版錄音功能,需要的朋友可以參考下
    2017-12-12
  • 原生JS實現隨機點名項目的實例代碼

    原生JS實現隨機點名項目的實例代碼

    這篇文章主要介紹了原生JS實現隨機點名項目的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2019-04-04
  • JS異步文件分片斷點上傳的實現思路

    JS異步文件分片斷點上傳的實現思路

    在項目中有時會遇到大文件上傳,經常會出現鏈接超時的問題,所以就需要使用文件分片上傳的方式來上傳大文件。下面通過本文給大家介紹js異步文件分片斷點上傳的實例代碼,需要的的朋友參考下吧
    2016-12-12
  • JS forEach和map方法的用法與區(qū)別分析

    JS forEach和map方法的用法與區(qū)別分析

    這篇文章主要介紹了JS forEach和map方法的用法與區(qū)別,結合實例形式分析了forEach和map方法的功能、原理、使用方法及相關操作注意事項,需要的朋友可以參考下
    2019-02-02
  • 使用javascript將時間轉換成今天,昨天,前天等格式

    使用javascript將時間轉換成今天,昨天,前天等格式

    這篇文章主要介紹了使用javascript將時間轉換成今天,昨天,前天等格式的相關資料,需要的朋友可以參考下
    2015-06-06
  • JS如何實現基于websocket的多端橋接平臺

    JS如何實現基于websocket的多端橋接平臺

    我們在調試過程使用的工具有:modheader,postman等,但這些工具都會存在的問題:缺少客戶端里相應的設備信息;即使將cookie信息復制出來,也是存在過期的問題;多個設備之間切換時不方便;針對這些存在的問題,我基于websocket雙向通信的特點,實現了多端橋接管理平臺
    2021-05-05
  • JavaScript動態(tài)創(chuàng)建div屬性和樣式示例代碼

    JavaScript動態(tài)創(chuàng)建div屬性和樣式示例代碼

    動態(tài)創(chuàng)建div屬性和樣式在某些情況下還是比較實用的,下面為大家詳細介紹下js中div屬性和樣式的動態(tài)創(chuàng)建,感興趣的朋友可以參考下
    2013-10-10

最新評論