123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- <?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);
- }
- }
|