ImageClassify.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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/AipImageClassify.php");
  14. /**
  15. * 图像审核控制器
  16. * @author 晓风<215628355@qq.com>
  17. * @package plugins\Sms\controller
  18. */
  19. class ImageClassify extends Common
  20. {
  21. public $client;
  22. public function __construct(){
  23. $config = addons_config('BaiduAi');
  24. $this->client = new \AipImageClassify($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. '216100'=>'请求中包含非法参数,请检查后重新尝试',
  52. '216101'=>'缺少必须的参数,请检查参数是否有遗漏',
  53. '216102'=>'请求了不支持的服务,请检查调用的url',
  54. '216103'=>'请求中某些参数过长,请检查后重新尝试',
  55. '216110'=>'appid不存在,请重新核对信息是否为后台应用列表中的appid',
  56. '216200' => '图片为空或者base64解码错误',
  57. '216201' => '上传的图片格式错误,现阶段我们支持的图片格式为:PNG、JPG、JPEG、BMP,请进行转码或更换图片',
  58. '216202' => '上传的图片大小错误,现阶段我们支持的图片大小为:base64编码后小于4M,分辨率不高于4096*4096,请重新上传图片',
  59. '216630' => '识别错误,请再次请求,如果持续出现此类错误,请通过QQ群(649285136)或工单联系技术支持团队',
  60. '216631' => '识别银行卡错误,出现此问题的原因一般为:您上传的图片非银行卡正面,上传了异形卡的图片或上传的银行卡正品图片不完整',
  61. '216633' => '识别身份证错误,出现此问题的原因一般为:您上传了非身份证图片或您上传的身份证图片不完整',
  62. '216634' => '检测错误,请再次请求,如果持续出现此类错误,请通过QQ群(649285136)或工单联系技术支持团队',
  63. '282000' => '内部错误',
  64. '282003' => '请求参数缺失',
  65. '282005' => '处理批量任务时发生部分或全部错误,请根据具体错误码排查',
  66. '282006' => '批量任务处理数量超出限制,请将任务数量减少到10或10以下',
  67. '282114' => 'URL长度超过1024字节或为0',
  68. '282809' => '返回结果请求错误(不属于excel或json)',
  69. '282810' => '图像识别错误',
  70. ];
  71. return $errors[$errorCode]?: '';
  72. }
  73. }