当前位置:网站首页>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;
}边栏推荐
- Intranet penetrating FRP: hidden communication tunnel technology
- What encryption algorithm is used for the master password of odoo database?
- [tutorial] yolov5_ DeepSort_ The whole process of pytoch target tracking and detection
- LeetCode 1184. 公交站间的距离 ---vector顺逆时针
- Book of night sky 53 "stone soup" of Apache open source community
- The per capita savings of major cities in China have been released. Have you reached the standard?
- Interpretation of the champion scheme of CVPR 2020 night target detection challenge
- Unity prefab day04
- Unity script API - transform transform
- One question per day 540 A single element in an ordered array
猜你喜欢

Unity动画Animation Day05

案例分享|金融业数据运营运维一体化建设

error: ‘connect‘ was not declared in this scope connect(timer, SIGNAL(timeout()), this, SLOT(up

Lombok使用引发的血案

Blood cases caused by Lombok use

2022年九大CIO趨勢和優先事項

MySQL学习笔记——数据类型(2)

AI做题水平已超过CS博士?

Weekly recruitment | senior DBA annual salary 49+, the more opportunities, the closer success!

Case sharing | integrated construction of data operation and maintenance in the financial industry
随机推荐
一篇文章搞懂Go语言中的Context
Unity脚本API—Time类
谈SaaS下如何迅速部署应用软件
函数式接口,方法引用,Lambda实现的List集合排序小工具
How to save the contents of div as an image- How to save the contents of a div as a image?
怎么判断外盘期货平台正规,资金安全?
Feature extraction and detection 15-akaze local matching
QT graphical view frame: element movement
LeetCode 58. Length of the last word
Nine CIO trends and priorities in 2022
Intranet penetrating FRP: hidden communication tunnel technology
Hexadecimal form
Huawei cloud database DDS products are deeply enabled
一篇文章学会GO语言中的变量
Unity预制件Prefab Day04
Temperature control system based on max31865
深入JS中几种数据类型的解构赋值细节
Unity脚本API—Component组件
CentOS 6.3 下 PHP编译安装JSON模块报错解决
直播预告 | PostgreSQL 内核解读系列第二讲:PostgreSQL 体系结构