前几天我在某论坛看到,他们的图片都是这样的.https://imgsa.baidu.com/forum/pic/item/d0fb39310a55b31937dfe4af4da98226cefc17fa.jpg
,我寻思这.百度识图那个接口的图片也不是这样的啊.后来看了看,发现是贴吧的.于是就有了这个文章.
抓接口
有人问了?怎么这个接口的图片地址和发的不一样?别着急
看出来没有?这个和接受到的 JSON 数据中的pic_id_encode
一毛一样吧?
PHP
<?php $cookie = '你的百度 cookies'; //自己 F12 看吧 // 使用示例: $url = uploadToBaidu($_FILES['file']['tmp_name'], $cookie); echo $url; /** * JSON 数据美化 */ function jsonm($data) { header('content-type:application/json;charset=utf-8'); return stripslashes(json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT)); } /** * @FunctionName 百度图床 * @Author KIENG * @CompletionDate 2019-08-12T09:06:17+0800 * @Copyright [blog.kieng.cn] * @License [BY-NC-SA/4.0/CN] * @param [type] $file [图片文件] * @param [type] $cookie [百度 cookie] * @return [type] [json] */ function uploadToBaidu($file, $cookie) { // API 接口地址 $url = 'http://uploadphotos.baidu.com/upload/pic?tbs=dc00688a479d8002015649947380125500_1&fid=4208767&save_yun_album=1'; // 文件不存在 if (!file_exists($file)) { return jsonm(['code' => 1, 'msg' => '文件不存在!']); } // POST 文件 if (class_exists('CURLFile')) { // php 5.5 $post['file'] = new CURLFile(realpath($file)); } else { $post['file'] = '@' . realpath($file); } // CURL 模拟提交 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_COOKIE, $cookie); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); $output = curl_exec($ch); curl_close($ch); // 解析数据 $output = json_decode($output, true); if (empty($output['info']['pic_id_encode'])) { return jsonm(['code' => 1, 'msg' => '上传失败!']); } else { $url = 'https://imgsa.baidu.com/forum/pic/item/' . $output['info']['pic_id_encode'] . '.jpg'; $f_url = 'https://image.baidu.com/search/down?tn=download&url=https://imgsa.baidu.com/forum/pic/item/' . $output['info']['pic_id_encode'] . '.jpg'; } return jsonm(['code' => 0, 'msg' => '上传成功!', 'NoUrl' => $url, 'OkUrl' => $f_url]); }
百度图床有防盗链那么怎么办呢?很简单只要在图片前面加上
https://image.baidu.com/search/down?tn=download&url=
上面中的接口已经帮助封装完毕,其中 NoUrl 就是有防盗链的,OkUrl 就是加了这个跳转的.有更好的方法欢迎评论! 
效果
好了!OJBK 了!