zoukankan      html  css  js  c++  java
  • Laravel项目使用腾讯云对象存储上传图片(cos-php-sdk-v5版本)

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

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

    2、下载官方SDK

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

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

    composer install

    3、在公共文件中引入SDK

    use QcloudCosApi;

    4、使用SDK上传文件

     function uploadImg($fileName,$realPath){
                $cosClient = new QcloudCosClient(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
    ";
                    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

  • 相关阅读:
    单例
    ASIHttpRequest加载网络数据和上传数据功能
    JSONModel
    KVC/KVO
    C中的动态内存分配和释放(free)
    IOS开发中Xcode一些使用技巧,快捷键的使用
    Struts2文件上传
    Struts2的输入校验
    struts2类型转换中的错误处理
    struts2自定义类型转换器
  • 原文地址:https://www.cnblogs.com/lamp01/p/8920816.html
Copyright © 2011-2022 走看看