zoukankan      html  css  js  c++  java
  • 微信图片鉴黄接口开发 以及遇到的那些坑

    好久好久没更新了哈, 最近比较忙哈。。。继续

    腾讯微信的图片鉴黄接口请求的时候竟然对PHP的版本有要求 分别5.6以上和5.6以下的区分,下面上代码 ,然后说原因

              //这里是图片上传  你们懂的哈 先传
    1
    $tmp_filename = $_FILES['file']['tmp_name']; 2 $name = date('YmdHis').rand(9999,999999).basename($_FILES["file"]['name']); 3 move_uploaded_file($tmp_filename,'../Uploads/'.$name); 4 5 //这里就是一个大坑了 ,实力坑爹,不同版本中间存在是否含有curlfile这个类,所以这里需要判断是否含有curlfile这个类
    因为这个类是curl请求专用的类,如果没有 无法发送参数到第三方,所以如果包含的话 需要实例化,否则直接使用 6 if(class_exists('CURLFile')){ 7 $dt = ['media' => new CURLFile(dirname(dirname(__FILE__)).'/Uploads/'.$name)]; 8 }else{ 9 $dt = ['media' => "@{dirname(dirname(__FILE__)).'/Uploads/'.$name}"]; 10 } 11 $url = 'https://api.weixin.qq.com/wxa/img_sec_check?access_token='.Yii::$app->redis->get('access_token'); 12 $response = Utils::curl_post($url,$dt); 13 $res = json_decode($response,true); 14 if(isset($res['errcode']) && $res['errcode']==0 && $res['errmsg']=='ok'){ 15 unlink(dirname(dirname(__FILE__)).'/Uploads/'.$name); 16 $this->code = 0; 17 $this->data = []; 18 $this->msg = '不是黄图'; 19 return; 20 }else if(isset($res['errcode']) && ($res['errcode']=='40001' ||$res['errcode']=='42001')){ 21 22 Utils::GetAccessTokens(2); 23 // unlink($name); 24 $this->actionCheckYellow(); 25 26 }else if(isset($res['errcode']) && $res['errcode']=='87014'){ 27 unlink($name); 28 $this->code = -1; 29 $this->data = []; 30 $this->msg = '含有违规内容'; 31 return; 32 }else{ 33 unlink($name); 34 $this->code = -2; 35 $this->data = []; 36 $this->msg = '检测失败 请重新检测'; 37 return; 38 }

    就这些 主要就是 判断curlFile是否存在,特别要注意你的php版本 。不过最好加上,万一你们服务器php版本切换了呢  是吧

  • 相关阅读:
    Emoji表情编解码库XXL-EMOJI
    代码生成平台Xxl-Code-Generator
    分布式单点登录框架XXL-SSO
    分布式爬虫框架XXL-CRAWLER
    Java对象和Excel转换工具XXL-EXCEL
    API管理平台XXL-API
    分布式缓存管理平台XXL-CACHE
    不知不觉已经写了多年代码,贴一下12年写的代码,表喷哈
    memcached安装、使用
    MySQL和Redis数据一致性问题
  • 原文地址:https://www.cnblogs.com/HoverM/p/13306020.html
Copyright © 2011-2022 走看看