fastadmin前端使用腾讯云存储的坑

还是直接说流程引代码:

  1. 我用的是php开发,然后下载了这个sdk,https://github.com/tencentyun/cos-php-sdk-v5/releases

  2. 然后接着在腾讯云上复制粘贴,我就直接展示我写好的.因为很简单,今天讲的也不是腾讯云cos的使用,而是在fastadmin中的使用

    require '../extend/cos/vendor/autoload.php';   //tp5用这个

    image.png

    $secretId = "填写你的SecretId"; //"云 API 密钥 SecretId";

    $secretKey = "填写你的SecretKey"; //"云 API 密钥 SecretKey";

    $region = "填写你的存储桶地域"; //设置一个默认的存储桶地域

    $cosClient = new \Qcloud\Cos\Client(

        array(

            'region' => $region,

            'schema' => 'https', //协议头部,默认为http,本地测试要用http

            'credentials'=> array(

                'secretId'  => $secretId ,

                'secretKey' => $secretKey)));

    //print_r($cosClient);   打印存储桶对象

    $local_path = ROOT_PATH .'public/uploads/202004/07/1.jpg';//本地文件绝对路径

    try {

        $result = $cosClient->putObject(array(

            'Bucket' => '你的存储桶名称', //格式:BucketName-APPID

            'Key' => 'upload/6.jpg',  //腾讯云存储路径,意思是upload目录下的6.jpg

            'Body' => fopen($local_path, 'rb'),  //图片文件

        ));

        // 请求成功

        print_r($result);

    } catch (\Exception $e) {

        // 请求失败

        echo($e);

    }

  3. 然后开始跑代码,配置信息没填错的话,就能看到如下图的返回信息,

    image.png

  4. 同时,腾讯云存储桶也能看到上传的图片信息,一般的朋友到这就结束了.后面就是fastadmin的坑了

    image.png

  5. 接着我上传到线上,fastadmin项目,出现的这个错误让我一脸懵逼

    image.png

  6. 第一反应就是去找这个方法,phpstrom的全局查找还是挺方便的

    image.png

  7. 然后我去报错我页面用了一下phpstrom 的ctrl+左键,可以跳转到_idn_uri_convert()函数,这又是怎么回事?难道require的姿势不对?后面我试了import,loader函数,甚至composer安装了一遍(composer将sdk安装到了根目录的vendor下),还是不行.最后在删除vendor里面的sdk时发现了一个眼熟的包

    image.png

    我把extend下面的包也打开,对比一下

    image.png

    顿时灵光一现,vendor里面也加载了???然后打开vendor里面的functions.php,看它里面有没有_idn_uri_convert()

    image.png

  8. 行,它删了,我们再加上.再跑一下线上代码,熟悉的画面

    image.png

    至此,终于结束了,找了两天,哈哈哈.有问题欢迎留言

   

发表评论