当前位置:网站首页>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;
}
边栏推荐
- Solve the error of JSON module in PHP compilation and installation under CentOS 6.3
- One question per day 540 A single element in an ordered array
- MySQL学习笔记——数据类型(数值类型)
- What should ABAP do when it calls a third-party API and encounters garbled code?
- Review of Weibo hot search in 2021 and analysis of hot search in the beginning of the year
- PXE network
- The per capita savings of major cities in China have been released. Have you reached the standard?
- C implementation defines a set of intermediate SQL statements that can be executed across libraries
- How was MP3 born?
- PXE网络
猜你喜欢
Qt---error: ‘QObject‘ is an ambiguous base of ‘MyView‘
.Net 应用考虑x64生成
How did the beyond concert 31 years ago get super clean and repaired?
Weekly recruitment | senior DBA annual salary 49+, the more opportunities, the closer success!
直播预告 | PostgreSQL 内核解读系列第二讲:PostgreSQL 体系结构
Actual combat | use composite material 3 in application
[Dalian University of technology] information sharing of postgraduate entrance examination and re examination
[North Asia data recovery] data recovery case of database data loss caused by HP DL380 server RAID disk failure
在芯片高度集成的今天,绝大多数都是CMOS器件
The per capita savings of major cities in China have been released. Have you reached the standard?
随机推荐
直播预告 | PostgreSQL 内核解读系列第二讲:PostgreSQL 体系结构
Shell programming basics
中国主要城市人均存款出炉,你达标了吗?
C implementation defines a set of intermediate SQL statements that can be executed across libraries
Ten clothing stores have nine losses. A little change will make you buy every day
Redis哨兵模式实现一主二从三哨兵
【读书会第十三期】 音频文件的封装格式和编码格式
数据湖治理:优势、挑战和入门
基于MAX31865的温度控制系统
2022年九大CIO趋势和优先事项
Blood cases caused by Lombok use
error: ‘connect‘ was not declared in this scope connect(timer, SIGNAL(timeout()), this, SLOT(up
Decimal, exponential
JS tile data lookup leaf node
js平铺数据查找叶子节点
Understand the context in go language in an article
Huawei cloud database DDS products are deeply enabled
2022年九大CIO趨勢和優先事項
LeetCode 1184. 公交站间的距离 ---vector顺逆时针
QT graphical view frame: element movement