ImageCensor.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // |ZBPHP[基于ThinkPHP5.1开发]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016-2019 http://www.benbenwangluo.com
  6. // +----------------------------------------------------------------------
  7. // | Author 似水星辰 [ 2630481389@qq.com ]
  8. // +----------------------------------------------------------------------
  9. // | 中犇软件 技术六部 出品
  10. // +----------------------------------------------------------------------
  11. namespace addons\BaiduAi\controller;
  12. use app\common\controller\Common;
  13. require_once(dirname(dirname(__FILE__))."/sdk/AipImageCensor.php");
  14. /**
  15. * 图像审核控制器
  16. * @author 晓风<215628355@qq.com>
  17. * @package plugins\Sms\controller
  18. */
  19. class ImageCensor extends Common
  20. {
  21. public $client;
  22. public function __construct(){
  23. $config = addons_config('BaiduAi');
  24. $this->client = new \AipOcr($config['app_id'], $config['api_key'], $config['secret_key']);
  25. }
  26. public function setConnectionTimeoutInMillis($ms){
  27. $this->client->setConnectionTimeoutInMillis($ms);
  28. }
  29. public function setSocketTimeoutInMillis($ms){
  30. $this->client->setSocketTimeoutInMillis($ms);
  31. }
  32. public function __call($method, $args){
  33. $ret = call_user_func_array([$this->client, $method], $args);
  34. if(isset($ret['error_code']) && $ret['error_code'] != 0){
  35. $error_msg = $this->getErrorMsg($ret['error_code'])?:$ret['error_msg'];
  36. exception($error_msg);
  37. }else{
  38. return $ret;
  39. }
  40. }
  41. public function getErrorMsg($errorCode){
  42. $errors = [
  43. '4' => '集群超限额',
  44. '14' => 'IAM鉴权失败,建议用户参照文档自查生成sign的方式是否正确,或换用控制台中ak sk的方式调用',
  45. '17' => '每天流量超限额',
  46. '18' => 'QPS超限额',
  47. '19' => '请求总量超限额',
  48. '100' => '无效参数',
  49. '110' => 'Access Token失效',
  50. '111' => 'Access token过期',
  51. '216015' => '模块关闭',
  52. '216100' => '请求中包含非法参数,请检查后重新尝试',
  53. '216101' => '缺少必须的参数,请检查参数是否有遗漏',
  54. '216102' => '请求了不支持的服务,请检查调用的url',
  55. '216103' => '请求中某些参数过长,请检查后重新尝试',
  56. '216110' => 'appid不存在,请重新核对信息是否为后台应用列表中的appid',
  57. '216111' => 'userid信息非法,请检查对应的参数',
  58. '216200' => '图片为空或者base64解码错误',
  59. '216201' => '上传的图片格式错误,现阶段我们支持的图片格式为:PNG、JPG、JPEG、BMP,请进行转码或更换图片',
  60. '216202' => '上传的图片大小错误,现阶段我们支持的图片大小为:base64编码后小于4M,分辨率不高于4096*4096,请重新上传图片',
  61. '216300' => '数据库异常,少量发生时重试即可',
  62. '216400' => '后端识别服务异常,可以根据具体msg查看错误原因',
  63. '216401' => '内部错误',
  64. '216500' => '未知错误',
  65. '282000' => '业务逻辑层内部错误',
  66. '282001' => '业务逻辑层后端服务错误',
  67. '282002' => '请求参数编码错误',
  68. '282100' => '图片压缩转码错误',
  69. '282202' => '检测超时',
  70. '282203' => 'gif单帧大小超限',
  71. '282204' => 'gif总帧数超限',
  72. '282205' => '图片格式错误',
  73. '282801' => 'image和imgUrl均为空',
  74. '282802' => 'image和imgUrl只能有一个有值',
  75. '282804' => '图片下载失败',
  76. '282805' => '调用底层服务异常',
  77. '282806' => '图片宽高异常',
  78. ];
  79. return $errors[$errorCode]?: '';
  80. }
  81. }