当前位置:网站首页>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;
}
边栏推荐
- Unity脚本常用API Day03
- Actual combat | use composite material 3 in application
- c# 实现定义一套中间SQL可以跨库执行的SQL语句
- The per capita savings of major cities in China have been released. Have you reached the standard?
- %F format character
- Hidden communication tunnel technology: intranet penetration tool NPS
- Summer Review, we must avoid stepping on these holes!
- hexadecimal
- 干货 | fMRI标准报告指南新鲜出炉啦,快来涨知识吧
- One question per day 540 A single element in an ordered array
猜你喜欢
How did the beyond concert 31 years ago get super clean and repaired?
Case sharing | integrated construction of data operation and maintenance in the financial industry
[tutorial] yolov5_ DeepSort_ The whole process of pytoch target tracking and detection
PR FAQ: how to set PR vertical screen sequence?
Book of night sky 53 "stone soup" of Apache open source community
The 17 year growth route of Zhang Liang, an open source person, can only be adhered to if he loves it
Data Lake Governance: advantages, challenges and entry
2022年九大CIO趨勢和優先事項
Force button brush question 01 (reverse linked list + sliding window +lru cache mechanism)
2022年九大CIO趋势和优先事项
随机推荐
JS to realize the countdown function
案例分享|金融业数据运营运维一体化建设
Lombok使用引发的血案
科研漫画 | 联系到被试后还需要做什么?
Unity script API - transform transform
error: ‘connect‘ was not declared in this scope connect(timer, SIGNAL(timeout()), this, SLOT(up
Weekly recruitment | senior DBA annual salary 49+, the more opportunities, the closer success!
Interface test - knowledge points and common interview questions
Function test - knowledge points and common interview questions
Unity脚本生命周期 Day02
Big God explains open source buff gain strategy live broadcast
LeetCode 58. 最后一个单词的长度
Common API day03 of unity script
Width and alignment
直播预告 | PostgreSQL 内核解读系列第二讲:PostgreSQL 体系结构
Introduction of text mining tools [easy to understand]
Shell 编程基础
unity update 协程_Unity 协程的原理
Unity动画Animation Day05
PXE网络