当前位置:网站首页>Laravel simply realizes Alibaba cloud storage + Baidu AI Cloud image review
Laravel simply realizes Alibaba cloud storage + Baidu AI Cloud image review
2022-07-04 16:06:00 【Shy_ shit_ man】
Find the file from the front end Get file pathname
$img = $request->file('name')->getPathname();
Call image audit method
$res = $this->checkImg($img);
The return value is an array Can pass conclusion This subscript determines whether it is compliant
/**
* Image review
*/
public function checkImg($img){
$app_key = " Baidu intelligent cloud key";
$secretkey = " Baidu AI Cloud service meter has ";
$token = $this->getAccessToken($app_key,$secretkey);
$url = 'https://aip.baidubce.com/rest/2.0/solution/v1/img_censor/v2/user_defined?access_token=' . $token;
$img = file_get_contents($img);
$img = base64_encode($img);
$bodys = array(
'image' => $img
);
$res = $this->curlPost($url, $bodys);
$res = json_decode($res,true);
return $res;
}
/**
* Get the bills of Baidu open platform
* Reference link :https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu
*/
public function getAccessToken($ApiKey = '', $SecretKey = '', $grantType = 'client_credentials')
{
$url = 'https://aip.baidubce.com/oauth/2.0/token';
$post_data['grant_type'] = $grantType;
$post_data['client_id'] = $ApiKey;
$post_data['client_secret'] = $SecretKey;
$o = "";
foreach ($post_data as $k => $v) {
$o .= "$k=" . urlencode($v) . "&";
}
$post_data = substr($o, 0, -1);
$res = $this->curlPost($url, $post_data);
// Convert the returned result into an array
$res = json_decode($res, true);
if (isset($res['error'])) {
exit('API Key perhaps Secret Key Incorrect ');
}
$accessToken = $res['access_token'];
return $accessToken;
}
After passing the audit, you can directly call the method of uploading cloud storage
$data['icon'] = $this->aliyunOss($img);
/**
* Ali cloud storage
* @param $cover
* @return mixed
* @throws \OSS\Core\OssException
*/
public function aliyunOss($cover){
$key = " Alibaba cloud secret key ";
$secret = " Alibaba cloud service key ";
$http = " Bucket address ";
$bucket = " Barrel name ";
// Create a oss
$oss = new OssClient($key,$secret,$http);
$fileName = md5(date("Y-m-d H:i:s",time())).'.png';
// Store pictures in oss In barrel And will url return
$res = $oss->uploadFile($bucket,$fileName,$cover);
return $res['oss-request-url'];
}
curl Of post Request method
/**
* CURL Of Post Request method
* @param string $url
* @param string $param
* @return bool|string
*/
function curlPost($url = '', $param = '')
{
if (empty($url) || empty($param)) {
return false;
}
$postUrl = $url;
$curlPost = $param;
// initialization curl
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $postUrl);
curl_setopt($curl, CURLOPT_HEADER, 0);
// Require the result to be a string and output to the screen
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// post submission
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
// function curl
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
边栏推荐
- 科研漫画 | 联系到被试后还需要做什么?
- Detailed explanation of MySQL composite index (multi column index) use and optimization cases
- A trap used by combinelatest and a debouncetime based solution
- Unity脚本API—GameObject游戏对象、Object 对象
- Object distance measurement of stereo vision
- C implementation defines a set of intermediate SQL statements that can be executed across libraries
- QT graphical view frame: element movement
- Common API day03 of unity script
- Unity animation day05
- Nine CIO trends and priorities in 2022
猜你喜欢
Unity脚本常用API Day03
MySQL组合索引(多列索引)使用与优化案例详解
Qt---error: ‘QObject‘ is an ambiguous base of ‘MyView‘
[North Asia data recovery] data recovery case of database data loss caused by HP DL380 server RAID disk failure
. Net applications consider x64 generation
Understand the context in go language in an article
Unity动画Animation Day05
What is the future of the booming intelligent Internet of things (aiot) in recent years?
中国主要城市人均存款出炉,你达标了吗?
这几年爆火的智能物联网(AIoT),到底前景如何?
随机推荐
[Dalian University of technology] information sharing of postgraduate entrance examination and re examination
PR FAQ: how to set PR vertical screen sequence?
%S format character
Data Lake Governance: advantages, challenges and entry
科普达人丨一文看懂阿里云的秘密武器“神龙架构”
Salient map drawing based on OpenCV
How to rapidly deploy application software under SaaS
Essential basic knowledge of digital image processing
lnx 高效搜索引擎、FastDeploy 推理部署工具箱、AI前沿论文 | ShowMeAI资讯日报 #07.04
压力、焦虑还是抑郁? 正确诊断再治疗
Blood cases caused by Lombok use
怎么判断外盘期货平台正规,资金安全?
Can I "reverse" a Boolean value- Can I 'invert' a bool?
How can floating point numbers be compared with 0?
CentOS 6.3 下 PHP编译安装JSON模块报错解决
MySQL学习笔记——数据类型(数值类型)
Intranet penetrating FRP: hidden communication tunnel technology
Usage of database functions "recommended collection"
[book club issue 13] coding format of video files
Unity script API - time class