上传图片到七牛云(tp5)

前期准备:

1.注册七牛云配置相关参数(参考七牛云官网)

2.将七牛云 sdk 根据七牛官网整合到tp5中

代码部分:

配置文件(在config中)

[
    'accessKey'=>'',
    'secretKey'=>'',
    'bucket'=>'',//上传空间名称
    'DOMAIN'=>''//空间绑定的域名
]
/**
 *上传图片
 */
 public function test(){
     //获取图片
     $photo = $this->request->file('photo');
     //处理图片
     $filepath = $photo->getRealPath();//文件路径
     $info['photo']=self::photoName($photo);// 获取处理后图片的名称

     //调用方法上传
     $img =self::upload($info['photo'],$filepath);
     //判断返回信息 如果是0  则返回错误信息
     if($img['err'] !== 0 ){
         $this->error($img['msg']);
     }
/**
 * tp5七牛云上传文件
 *
 */
 public function upload($key,$filePath){
         //引入autoload.php文件 
         require_once APP_PATH . '/../vendor/Qiniu/autoload.php';

         // 需要填写你的 Access Key 和 Secret Key
         $accessKey = config('qiniu.accessKey');
         $secretKey = config('qiniu.secretKey');

         // 构建鉴权对象
         $auth = new Auth($accessKey, $secretKey);

         // 要上传的空间
         $bucket = config('qiniu.bucket');
         $domain = config('qiniu.DOMAIN');
         $token = $auth->uploadToken($bucket);
         // 初始化 UploadManager 对象并进行文件的上传
         $uploadMgr = new UploadManager();
         // 调用 UploadManager 的 putFile 方法进行文件的上传  $token 上传凭证  $key 上传文件名   $filepath 上传文件的路径
         list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);

         if ($err !== null) {
             return ["err"=>1,"msg"=>$err,"data"=>""];
         } else {//成功
             //返回图片的完整URL
             return ["err"=>0,"msg"=>"上传完成","data"=>($domain .'/'. $ret['key'])];
         }
 }
/**
 * 获取名字
 */
function photoName($file){
    $ext = pathinfo($file->getInfo('name'), PATHINFO_EXTENSION);  //后缀
    $result =substr(md5($file->getRealPath()) , 0, 5). date('YmdHis') . rand(0, 9999) . '.' . $ext;
    return $result;
}

猜你喜欢

转载自blog.csdn.net/hai__yin/article/details/81184521