Thinkphp5 集成阿里云OSS
------安装阿里云OSS SDK -----
composer require aliyuncs/oss-sdk-php
------配置阿里云设置-- tp根目录/application/config.php------
'alioss' => [ 'acckeyid' => 'LTAI4Fqono2Jc1LBjMcB****', //keyid 'acckeysecret' => 'LYsINIwfRjVHu60aC1NGYXm4r****', //keysecret 'endpoint' => 'http://ddddmehlhlyou-test-aliyunoss.xiaoguan.net', //外网域名,自定义域名 - 必须绑定备案的域名否则会自动下载 'bucket' => 'ddddmehlhlyou-test', //bucket名称 'custom' => 'true', //是否自定义域名 ]
------通用API方法封装 -- tp根目录/application/extra/api.php------
<?php
// +----------------------------------------------------------------------
// | 通用方法
// +----------------------------------------------------------------------
use OSS\OssClient;
use OSS\Core\OssException;
class API
{
    //上传实例化
    public static function uploadOSS($filename, $filebase){
        $alioss = config('alioss');
        // 上传时可以设置相关的headers,例如设置访问权限为private和自定义元信息。
        $options = array(
        OssClient::OSS_HEADERS => array(
        'x-oss-object-acl' => 'private',
        'x-oss-meta-info' => 'jonyguan-test'
        ),
        );
        try {
        $newoss = new OssClient($alioss['acckeyid'], $alioss['acckeysecret'], $alioss['endpoint'], $alioss['custom']);
        } catch (OssException $e) {
        return $e->getMessage();
        }
    
        try {
        $newoss->putObject($alioss['bucket'], $filename, $filebase, $options);
        } catch (OssException $e) {
        return $e->getMessage();
        }
        
        $imgUrl = $alioss['endpoint'] . '/' . $filename;
        return $imgUrl;
    }
    
    //上传图片操作
    public static function uploadImage($upfile){
        $filebase = file_get_contents($upfile['tmp_name']);
        $name = $upfile['name'];
        $format = strrchr($name, '.');//截取文件后缀名如 (.jpg)
        /*判断图片格式*/
        $allow_type = ['.jpg', '.jpeg', '.gif', '.png'];
        if (!in_array($format, $allow_type)) {
        API::ApiRes(0, "文件格式不在允许范围内哦");
        }
        $nowtime = time();
        $today = date("Y-m-d",$nowtime);
        $saveName = md5($nowtime . rand(000,999));
        $filename = $today . '/' . $saveName.$format;
        return self::uploadOSS($filename, $filebase);
    }
}----控制器里调用--tp根目录/application/index/controller/index.php-----
use API;
public function upimg()
{
    $upfile = $_FILES['image'];
    $upimg = API::uploadImage($upfile);
    var_dump($upimg);
}----路由配置-tp根目录/application/route.php-----
<?php
use think\Route; 
Route::post('upimg','index/Index/upimg');----上传文件HTML---tp根目录/public/test.html----------访问此文件 http://localhost/test.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>tp5-aliyunoss上传实例</title> </head> <body> <form action="/upimg" method="post" enctype="multipart/form-data"> <input type="file" name="image"> <input type="submit"> </form> </body> </html>