thinkphp6配置阿里云上传图片

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、安装
  • 二、配置阿里云
  • 三、接口实现


前言

提示:这里可以添加本文要记录的大概内容:

在thinkphp6中编写上传图片接口并将图片上传到阿里云


提示:以下是本篇文章正文内容,下面案例可供参考

一、安装

在终端打开项目根目录,使用composer进行安装

composer require aliyuncs/oss-sdk-php

二、配置阿里云

本人是在config目录下新建了一个aliyun.php,并将阿里云相关配置信息存储进去,相关配置信息请自行前往阿里云注册登录获取。


return [
    'aliyun_oss' => [
        'type'         => 'aliyun',
        'accessId'     => '',
        'accessSecret' => '',
        'bucket'       => '',
        'endpoint'     => '',// 节点
        'url'          => '',//不要斜杠结尾,此处为URL地址域名。
    ],
];

三、接口实现



namespace app\front\controller;

use app\BaseController;
use think\Request;
use OSS\OssClient;
use OSS\Core\OssException;

class Test extends BaseController
{
	//图片上传
    public function uploadImg()
    {
        $file = request()->file('file');  //接口文件的参数名,取决前端传送的参数
        $filePath = $_FILES['file']['tmp_name'];//要上传文件的临时路径
        $type = $file->extension();
        //读取config目录下aliyun.php的aliyun_oss数据信息
        $Filesystem = \think\facade\Config::get('aliyun.aliyun_oss');
        try {
            $accessKeyId = $Filesystem['accessId'];
            $accessKeySecret =  $Filesystem['accessSecret'];//阿里云后台获取秘钥
            $endpoint = $Filesystem['endpoint'];
            $bucket = $Filesystem['bucket'];
            //实例化对象 将配置传入
            $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
            //这里是有sha1加密 生成文件名 之后连接上后缀
            $fileName = sha1(date('YmdHis', time()) . uniqid()) . '.' . $type;
            //上传至阿里云的目录 为年+月/日的格式
            $pathName = date('Y-m/d') . '/' .$fileName;
            //执行阿里云上传 bucket名称,上传的目录,文件
            $result = $ossClient->uploadFile($bucket, $pathName, $filePath);
        } catch (OssException $e) {
            return json(['code'=>0,'message'=>'上传失败','error'=>$e->getMessage()]);
        }
        //将结果输出
        return json(['code'=>200,'message'=>'上传成功','data'=>$result['info']['url']]);
    }

}

你可能感兴趣的:(#,php,阿里云,php,服务器)