那些能找回的东西,从没丢失过;那些丢失了的东西,或许从未真正拥有。
功能介绍
通过百度识图接口,将图片上传百度存储。
实现原理
之前在做百度AI识图时,碰巧检索出了百度识图,通过简单浏览,发现了这个简单的图床功能,整体来说,就一个post提交加字符串组合。
①post请求
地址 https://graph.baidu.com/upload
参数 image : 图片链接
from : pc (固定值)
示例image:
http://i1.whymtj.com/uploads/tu/201903/9999/457511a229.jpg
请求结果:
{
"status": 0,
"msg": "Success",
"data": {
"url": "https://graph.baidu.com/s?sign=106155b9029ce2901e0b601553844858&f=all&tn=wise&srcp=&tn=wise&idctag=gz&sids=10004_10191_10291_10391_10691_10705_10301_10709_10800_10902_11006_10905_10911_11001_10014_10117_10016_10018_11020_11032_9999&logid=2056445137&entrance=general&pageFrom=graph_upload_pcshitu&extUiData%5BisLogoShow%5D=1&tpl_from=pc",
"sign": "106155b9029ce2901e0b601553844858"
},
"cost_nirs": 951,
"cost_pfc": 1035
}
其中sign值极为图片特征值。
②组合
图片上传后地址为:
https://graph.baidu.com/resource/{sign}.jpg
示例中的为:
https://graph.baidu.com/resource/106155b9029ce2901e0b601553844858.jpg
完整示例代码:
<?php
$postData = http_build_query(array(
"from"=> "pc",
"image"=>"http://i1.whymtj.com/uploads/tu/201903/9999/457511a229.jpg"
));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://graph.baidu.com/upload");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$postData);
$result=curl_exec ($ch);
curl_close($ch);
$url = "https://graph.baidu.com/resource/".json_decode($result,true)["data"]["sign"].".jpg";
echo $url;
?>
使用声明