美文网首页
ThinkPHP5.0安装七牛云扩展-和图片上传2019-07-

ThinkPHP5.0安装七牛云扩展-和图片上传2019-07-

作者: 一位先生_ | 来源:发表于2020-08-04 10:38 被阅读0次

composer安装七牛SDK

config文件保存七牛云配置信息

Controller:

namespace app\admin\controller;

use think\Controller;

class Qiniu extends Controller {

    /** 上传页面

    * Created by PhpStorm.

* User: Administrator

* Date: 2019-7-26 0026

* Time: 10:34

*/

    public function index()

{

        return view();

    }

    /** 上传图片

    * Created by PhpStorm.

* User: Administrator

* Date: 2019-7-26 0026

* Time: 10:34

*/

    public function upload()

{

        if ($this->request->isPost()) {

            $qiniu = new \app\admin\model\Qiniu();

            $data = $qiniu->uploadImage('imgFile');

            var_dump($data);

        }

}

}

model:

namespace app\admin\model;

use think\Model;

use Qiniu\Auth;

use Qiniu\Storage\UploadManager;

class Qiniu extends Model

{

    private $AccessKey;

    private $SecretKey;

    private $bucket;

    private $auth;

    public function __construct()

{

        parent::__construct();

        $this->AccessKey = config('qiniu.AccessKey');

        $this->SecretKey = config('qiniu.SecretKey');

        $this->bucket = config('qiniu.bucket');

        vendor('qiniu.php-sdk.autoload');

        $this->auth = new Auth($this->AccessKey, $this->SecretKey);

    }

    /**

    * @description 七牛上传文件

    * @param string $fileName 上传文件的name值

    * @param string $bucket 上传至七牛的指定空间

    * @return array 上传结果信息

    */

    public function uploadImage($fileName = '', $bucket = '')

{

        //文件获取、处理

        $file = request()->file($fileName);

        // 上传文件的本地路径

        $filePath = $file->getRealPath();

        //文件后缀

        $extension = pathinfo($file->getInfo('name'), PATHINFO_EXTENSION);

        //获取七牛token

        $bucket = empty($bucket) ? $this->bucket : $bucket;

        $token = $this->auth->uploadToken($bucket);

        //上传到七牛后保存的文件名

        $key = substr(md5($file->getRealPath()) , 0, 5). date('YmdHis') .  rand(0, 9999) . '.' . $extension;

        //初始化UploadManager对象

        $uploadManager = new UploadManager();

        //文件上传

        $data = $uploadManager->putFile($token, $key, $filePath);

        if ($data) {

            return json_encode(['code'=>200,'status'=>1,'msg'=>'上传成功','data'=>$data]);

        } else {

            return json_encode(['code'=>200,'status'=>0,'msg'=>'上传失败']);

        }

}

    /**

    * 获取私有空间或使用了原图保护功能的图片文件地址

    * @param string $url 格式:http://domain/key[文件名]?e=时间戳

    * @return string 可访问的url地址:http://domain/key[文件名]?e=时间戳&token='token'

*/

    public function getSignedUrl($url)

{

        $signedUrl = $this->auth->privateDownloadUrl($url);

        //该url地址需要验证是否可访问。

        return $signedUrl;

    }

}

相关文章

网友评论

      本文标题:ThinkPHP5.0安装七牛云扩展-和图片上传2019-07-

      本文链接:https://www.haomeiwen.com/subject/syorrctx.html