TP5实现阿里云oss上传

  1. 在项目根目录 用composer下载oss-sdk-php
    composer require aliyuncs/oss-sdk-php
    参考:https://help.aliyun.com/document_detail/85580.html

  2. config文件里配置账户信息

return [
        'oss' =>[
            'accessKeyId'=>$accessKeyId,
            'accessKeySecret'=>$accessKeySecret,
            'bucket' => $bucket,
            'endPoint' => $endPoint,
            'domain' => $domain,
            'oss_dir' => [
                'img' => $oss_type.'/'.$oss_qd.'/img/'
            ]
        ]
    ];
  1. 创建Aliyunoss扩展类
uploadFile($bucket, $object, $filepath);
    }


    /**
     * 使用阿里云oss上传字符串
     */
    public function putStr($object, $content)
    {
        $bucket = Config::get('oss.bucket');        //获取阿里云oss的bucket
        return self::$oss->putObject($bucket, $object, $content);
    }

    /**
     * 删除指定文件
     * @param $object 被删除的文件名
     * @return bool  删除是否成功
     */
    public function delete($object)

    {
        $res = false;
        $bucket = Config::get('oss.bucket');        //获取阿里云oss的bucket
        if (self::$oss->deleteObject($bucket, $object)){ //调用deleteObject方法把服务器文件上传到阿里云oss
            $res = true;
        }
        return $res;
    }

    public function test(){
        echo "success";
    }
}

  1. controller方法里调用
public function upload()
{
    $path = Config::get('oss.oss_dir');
    $name = date('YmdHis',time()).'.png';

    //1.获取上传文件信息
    $upfile = $_FILES["png"];

    //2.上传到阿里云oss
    $ali = new Aliyunoss();
    $oss_result = $ali->upload($path.$name,$upfile["tmp_name"]);
    dump($oss_result);
}

你可能感兴趣的:(PHP,php)