搜狗圖床接口PHP源碼案例分享

此源碼轉自唯愛網絡,代碼為PHP版本,調用搜狗圖片上傳。

此代碼為PHP 類,請自行下載研究。

<?php
namespace app\home\controller;
use app\home\controller\Common;
class Upload extends Common{
    public function _empty(){
         phpinfo();
    }
    public function image(){
        $fileExt=['gif','jpeg','jpg','png'];
        $MaxfileSize=1024*1024*2;
        if(isset($_FILES["file"])){
            $extension=pathinfo($_FILES["file"]['name'])['extension'];
            if($_FILES['file']['size']==0){
                $this->error('未知系統錯誤');
                return ;
            }
            if(!in_array($extension,$fileExt)){
                $this->error('只支JPG/GIF/PNG/JPEG文件');
                return ;
            }
            if($_FILES['file']['size']>=$MaxfileSize){
                $this->error('圖片大小不能超過2MB');
                return ;
            }
            //臨時文件保存目錄
            $ImageCachePath=RUNTIME_PATH.'image/';//緩存路徑
            if(!is_dir($ImageCachePath)){//不存在,創建文件夾
                mkdir($this->path, 777, true);
            }
            
            //生成新文件名
            $newFileName=$ImageCachePath.md5(rand(10000,99999)).'.'.$extension;
            //把文件存入臨時目錄
            if(!move_uploaded_file($_FILES["file"]["tmp_name"],$newFileName)){
                unlink($newFileName);
                $this->error('上傳失敗!代碼100');
                return ;
            }
            //接口地址
            $UploadUrl = 'http://pic.sogou.com/ris_upload?r='.rand(10000,99999);
            //取出臨時目錄上傳的文件
            $curlPost = array('pic_path'=>new \CurlFile($newFileName));
            //模擬上傳開始
            $ch = curl_init();  
            curl_setopt($ch, CURLOPT_URL, $UploadUrl);  
            // curl_setopt($ch, CURLOPT_HEADER, 1); 
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_POST, 1); //POST提交  
            curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost);  
            $data =curl_exec($ch);  
            curl_close($ch);
            //Urldecode解碼字符串
            $NewData=urldecode($data);
            //匹配出結果
            preg_match('/query\=(.*?)\&oname/i',$NewData,$ImageUrl);
            if(!isset($ImageUrl[1])){
                unlink($newFileName);
                $this->error('上傳失敗!代碼200');
                return ;
            }
            //返回Url,并且刪除文件
            unlink($newFileName);
            $this->success('上傳成功!',$ImageUrl[1]);
            return ;
        }
    }
}

轉載請注明出處 AE博客|墨淵 ? 搜狗圖床接口PHP源碼案例分享

相關推薦

發表評論

路人甲

網友評論(2)

看我名稱你就知道我干啥的了。
AV之家 11個月前 (2018-10-20) 回復
優秀啊
楊小杰博客 11個月前 (2018-10-20) 回復