<?php

namespace frontend\modules\api\controllers;

use frontend\modules\api\components\BaseAdminController;
use yii\web\Response;

class UploadController extends BaseAdminController
{
    /**
     * 上传头像
     * @return Response
     */
    public function actionUserAvatar()
    {
        //******先存储图片，返回完整路径******//
        $day = date("Ymd"); //定义存储文件夹：20220101
        $dir = "../web/uploads/" . $day; //设定存储上传文件的文件夹
        if (!is_dir($dir)) {
            mkdir($dir, 0777, TRUE); //如果文件夹目录不存在则创建
        }
        $fileName = $_FILES["file"]["name"]; //得到上传文件的名字
        $oldPath = $dir . "/" . $fileName; // 路径+旧文件名
        $name = explode('.', $fileName); //将文件名以'.'分割得到后缀名,得到一个数组
        $num = count($name) - 1; //下标减1
        $fileName = strtolower($name[$num]); //转换成小写
        // 初步校验图片代码
        if (empty($fileName) || ($fileName !== 'jpeg' && $fileName !== 'jpg' && $fileName !== 'gif' && $fileName !== 'png')) {
            return $this->asJson([], 1, "图片格式不合法！"); //通知前端图片格式非法
        }
        if ($_FILES['file']['size'] > 2097152) {
            return $this->asJson([], 1, "图片大小{$_FILES['file']['size']}已超出2M限制！"); //通知前端图片大小非法
        }
        //生成文件名
        $date = date('Ymdhis') . rand(10000, 99999); // 得到当前时间,如;2017070516314829，附上5位随机数字
        $newName = $date . '.' . $name[1]; // 得到一个新的文件为'随机数字.jpg'
        $newPath = $dir . "/" . $newName; // 路径+新文件名
        $path = "/uploads/" . $day . "/" . $newName;
        //完成上传
        move_uploaded_file($_FILES['file']['tmp_name'], $oldPath); // 上传
        rename($oldPath, $newPath); // 重命名
        //返回数据
        $data = [
            "path" => $path,
        ];
        return $this->asJson($data);
    }

    /**
     * 头像上传
     * @return Response
     */
    public function actionCaseAvatar()
    {
        //******先存储图片，返回完整路径******//
        $day = date("Ymd"); //定义存储文件夹：20220101
        $dir = "../web/uploads/" . $day; //设定存储上传文件的文件夹
        if (!is_dir($dir)) {
            mkdir($dir, 0777, TRUE); //如果文件夹目录不存在则创建
        }
        $fileName = $_FILES["file"]["name"]; //得到上传文件的名字
        $oldPath = $dir . "/" . $fileName; // 路径+旧文件名
        $name = explode('.', $fileName); //将文件名以'.'分割得到后缀名,得到一个数组
        $num = count($name) - 1; //下标减1
        $fileName = strtolower($name[$num]); //转换成小写
        // 初步校验图片代码
        if (empty($fileName) || ($fileName !== 'jpeg' && $fileName !== 'jpg' && $fileName !== 'gif' && $fileName !== 'png')) {
            return $this->asJson([], 1, "图片格式不合法！"); //通知前端图片格式非法
        }
        if ($_FILES['file']['size'] > 2097152) {
            return $this->asJson([], 1, "图片大小{$_FILES['file']['size']}已超出2M限制！"); //通知前端图片大小非法
        }
        //生成文件名
        $date = date('Ymdhis') . rand(10000, 99999); // 得到当前时间,如;2017070516314829，附上5位随机数字
        $newName = $date . '.' . $name[1]; // 得到一个新的文件为'随机数字.jpg'
        $newPath = $dir . "/" . $newName; // 路径+新文件名
        $path = "/uploads/" . $day . "/" . $newName;
        //完成上传
        move_uploaded_file($_FILES['file']['tmp_name'], $oldPath); // 上传
        rename($oldPath, $newPath); // 重命名
        //返回数据
        $data = [
            "path" => $path,
        ];
        return $this->asJson($data);
    }
}
