0x01 准备工作

1、提交表单,注意enctype="multipart/form-data"

2、注意路由。

0x02 开始

1、使用composer安装相关的组件包。

composer require johnlui/aliyun-oss:~2.0

如果速度慢,可以切换到国内composer镜像,享受飞一般的速度,执行命令即可

composer config -g repo.packagist composer https://packagist.phpcomposer.com

2、根据相关文档创建Services

https://packagist.org/packages/johnlui/aliyun-oss

现在阿里云头部没有获取key的链接,所以获取AccessKeyId的链接是:https://ak-console.aliyun.com

3、修改好后,开始写;

<?php
namespace App\Services;

use App\Store\UsersStroe;
use App\Tools\Common;
use Illuminate\Support\Facades\Session;
use App\Services\OSS;

class UsersService
{
    private static $usersStore;
    public function __construct(UsersStroe $usersStroe)
    {
        self::$usersStore = $usersStroe;
    }

    //添加用户
    public function create($data)
    {
        //密码加密及生成UUID
        $password = Common::cryptString($data['password']);
        $guid = Common::getUuid();

        //调用文件上传,处理上传的文件
        $fileName = $this->uploadFile($data['pic']);
        if(empty($fileName)){
            return back();
        }

        //拼装SQL语句
        $param = [
            'guid' => $guid,
            'username' => $data['username'],
            'password' => $password,
            'tel' => $data['tel'],
            'pic' => $fileName,
            'status' => '1',
            'addtime' => time()
        ];
        return self::$usersStore->create($param);
    }

    /**
     * 文件上传
     * @param  string 文件名
     * @return 文件名
     */
    public function uploadFile($file)
    {
        //获取缓存文件夹下的绝对路径
        $realPath = $file->getRealPath();

        //获取上传文件的后缀名
        $ext = $file->getClientOriginalExtension();

        //使用uuid随机生成文件名
        $fileName = Common::getUuid().'.'.$ext;

        $result = OSS::publicUpload('k2shop',$fileName,$realPath);

        //判断是否上传成功
        if(empty($result)){
            return false;
        }

        return $fileName;
    }
}

由于我是采用的mvcs的设计模式,所以控制器的接收并验证表单并没有贴出。