access_token_baidu($grant_type,$client_id,$client_secret)['access_token'];//去请求token Cache::set('baiduai_access_token', $access_token['access_token'], $access_token['expires_in']);// 将取到的token存入redis方便下次使用 } $image=$this->request->params(['image']); $image=$image['image']; if(empty($image)){ return app('json')->fail('参数不正确'); } $imageName = time().'1.png'; if (strstr($image,",")){ $image = explode(',',$image); $image = $image[1]; } $path = "./public/shareimg"; if (!is_dir($path)){ //判断目录是否存在 不存在就创建 mkdir($path,0777,true); } $imageSrc= $path."/". $imageName; //图片名字 file_put_contents($imageSrc, base64_decode($image));//返回的是字节数 $returnimgurl=env('APP_URL').'/shareimg/'.$imageName; $scenes=["advanced_general"]; $data=[ 'imgUrl'=>$returnimgurl, 'scenes'=>$scenes, ]; $data=json_encode($data); $header=[ 'Content-Type:'.'application/json;charset=utf-8', ]; $url='https://aip.baidubce.com/api/v1/solution/direct/imagerecognition/combination?access_token='.$access_token; $data=$this->curl($url,$data,'post',$header); $data=json_decode($data,true); if(empty($data['result']['advanced_general']['result'])){ return app('json')->fail('未获取到数据'); } $data=array_column($data['result']['advanced_general']['result'],'keyword'); $data=[ 'data'=>$data, 'imgurl'=>$returnimgurl ]; return app('json')->success($data); } /** * 删除 搜索的图片 */ public function deleteimg() { $url=$this->request->params(['url']); if(empty($url['url'])) return app('json')->fail('未获取到参数'); $url=$url['url']; $data=explode('shareimg/',$url); @unlink('./public/shareimg/'.end($data)); return app('json')->success('ok'); } /** * @param $grant_type * @param $client_id * @param $client_secret * @return mixed * 百度鉴权token */ public function access_token_baidu($grant_type,$client_id,$client_secret) { $data=[ 'grant_type'=>$grant_type, 'client_id'=>$client_id, 'client_secret'=>$client_secret ]; $url='https://aip.baidubce.com/oauth/2.0/token'; $data=$this->curl($url,$data,'post',''); return json_decode($data,true); } //curl 请求 public function curl($url , $data=array(),$option,$header=''){ $ch = curl_init();// if(!empty($header)){ curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_HEADER, 0);//返回response头部信息 } curl_setopt($ch, CURLOPT_URL, $url);// curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // POST数据 if($option=='post'){ curl_setopt($ch, CURLOPT_POST, 1); } curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $output = curl_exec($ch); curl_close($ch); return $output; } }