lamp01

为了加快网站访问速度、降低网站负载,现在越来越多的网站选择把图片等静态文件放在云上,这里介绍一下腾讯云对象存储在Laravel项目中的使用

 1、申请腾讯云对象存储、创建Bucket、获取APPID等参数,配置在.ENV文件

 

2、下载官方SDK

在composer.json文件添加如下代码

{
    "require": {
        "qcloud/cos-sdk-v5": ">=1.0"
    }
}

composer install

 

3、在公共文件中引入SDK

use Qcloud\Cos\Api;

 

4、使用SDK上传文件

 

 function uploadImg($fileName,$realPath){
            $cosClient = new Qcloud\Cos\Client(array(\'region\' => env(\'REGION\'),
                \'credentials\'=> array(
                    \'appId\' => env(\'APPID\'),
                    \'secretId\'    => env(\'SECRETID\'),
                    \'secretKey\' => env(\'SECRETKEY\'))));
            try {
                $result = $cosClient->putObject(array(
                    \'Bucket\' => env(\'BUCKET\'),
                    \'Key\' =>  $fileName,
                    \'Body\' => fopen($realPath, \'rb\'),
                    \'ServerSideEncryption\' => \'AES256\'));
            } catch (\Exception $e) {
                echo "$e\n";
                echo \'</br> 失败\';
            }
        }

 

其中Key是腾讯云要上传的路径加文件名,Body是现文件的路径

 

5、控制器调用上传方法

 

public function testv5()
    {
        $file = Input::file(\'logo\');
        //判断是否为空
        if(empty($file)){
            return back()->withErrors(\'请上传logo\')->withInput();
        }
        //取得上传文件的大小
        $sizes = $file->getSize();
        $size = $sizes/1024;
        if($size > UPLOAD_IMAGE_MAXSIZE){
            return  back()->withErrors([\'上传的图片不能超过2M\'])->withInput();
        }
        //格式不对提醒
        $ext = $file->getClientOriginalExtension();     // 扩展名
        $allowed_extensions = explode(\'|\',UPLOAD_IMAGE_ALLOWED);
        if ($ext && !in_array($ext, $allowed_extensions)) {
            return  back()->withErrors([\'您只能上传png、jpg、jpeg或者gif格式的文件\'])->withInput();
        }
        // 获取文件相关信息
        $realPath = $file->getRealPath();   //临时文件的绝对路径
        //上传路径
        $fileName =env(\'FILEPATH\').str_random(10).time().\'.\'.$ext;  //拼接图片名
        uploadImg($fileName,$realPath);
    }

 

 

 

 

6、上传成功便可以在腾讯云后台看到上传的文件及路径了

 

PS:更多API接口如文件夹的创建、删除等请查看官方快速入门文档接口文档以及demo

分类:

技术点:

相关文章: