搜狗图床接口 PHP 源码案例分享

沃森博客 2019年2月14日00:15:59web大杂烩评论392阅读模式

此源码转自网络,代码为 PHP 版本,调用搜狗图片上传。

此代码为 PHP 类,请自行下载研究。

  1. <?php
  2. namespace app\home\controller;
  3. use app\home\controller\Common;
  4. class Upload extends Common{
  5.     public function _empty(){
  6.          phpinfo();
  7.     }
  8.     public function image(){
  9.         $fileExt=['gif','jpeg','jpg','png'];
  10.         $MaxfileSize=1024*1024*2;
  11.         if(isset($_FILES["file"])){
  12.             $extension=pathinfo($_FILES["file"]['name'])['extension'];
  13.             if($_FILES['file']['size']==0){
  14.                 $this->error('未知系统错误');
  15.                 return ;
  16.             }
  17.             if(!in_array($extension,$fileExt)){
  18.                 $this->error('只支 JPG/GIF/PNG/JPEG 文件');
  19.                 return ;
  20.             }
  21.             if($_FILES['file']['size']>=$MaxfileSize){
  22.                 $this->error('图片大小不能超过 2MB');
  23.                 return ;
  24.             }
  25.             //临时文件保存目录
  26.             $ImageCachePath=RUNTIME_PATH.'image/';//缓存路径
  27.             if(!is_dir($ImageCachePath)){//不存在,创建文件夹
  28.                 mkdir($this->path, 777, true);
  29.             }
  30.             //生成新文件名
  31.             $newFileName=$ImageCachePath.md5(rand(10000,99999)).'.'.$extension;
  32.             //把文件存入临时目录
  33.             if(!move_uploaded_file($_FILES["file"]["tmp_name"],$newFileName)){
  34.                 unlink($newFileName);
  35.                 $this->error('上传失败!代码 100');
  36.                 return ;
  37.             }
  38.             //接口地址
  39.             $UploadUrl = 'http://pic.sogou.com/ris_upload?r='.rand(10000,99999);
  40.             //取出临时目录上传的文件
  41.             $curlPost = array('pic_path'=>new \CurlFile($newFileName));
  42.             //模拟上传开始
  43.             $ch = curl_init();
  44.             curl_setopt($ch, CURLOPT_URL, $UploadUrl);
  45.             // curl_setopt($ch, CURLOPT_HEADER, 1); 
  46.             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  47.             curl_setopt($ch, CURLOPT_POST, 1); //POST 提交  
  48.             curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost);
  49.             $data =curl_exec($ch);
  50.             curl_close($ch);
  51.             //Urldecode 解码字符串
  52.             $NewData=urldecode($data);
  53.             //匹配出结果
  54.             preg_match('/query\=(.*?)\&oname/i',$NewData,$ImageUrl);
  55.             if(!isset($ImageUrl[1])){
  56.                 unlink($newFileName);
  57.                 $this->error('上传失败!代码 200');
  58.                 return ;
  59.             }
  60.             //返回 Url,并且删除文件
  61.             unlink($newFileName);
  62.             $this->success('上传成功!',$ImageUrl[1]);
  63.             return ;
  64.         }
  65.     }
  66. }

 

 

沃森博客
  • 本文由 发表于 2019年2月14日00:15:59
  • 本文来自互利网收集整理,问题反馈联系邮箱:wosnnet@foxmail.com,转载请务必保留本文链接:https://wosn.net/1621.html

发表评论