official_website/app/api/controller/FileManager.php

61 lines
2.1 KiB
PHP

<?php
/**
* @Descripttion : FOXCMS 是一款高效的 PHP 多端跨平台内容管理系统
* @Author : FoxCMS Team
* @Date : 2023/6/26 16:21
* @version : V1.08
* @copyright : ©2021-现在 贵州黔狐科技股份有限公司 版权所有
* @LastEditTime : 2023/6/26 16:21
*/
namespace app\api\controller;
use app\common\controller\ApiBase;
use app\common\util\FileUtil;
use app\common\util\ImageUtil;
use think\App;
// 文件管理器
class FileManager extends ApiBase
{
public function upload()
{
$param = $this->request->param();
$groupId = $param["groupId"] ?? 0;
$type = $param["type"] ?? 'file'; //文件类型 默认上传文件
$file = request()->file('file');
$result = ['code' => 0, 'msg' => '上传失败'];
if ($type == 'file') { //上传文件
$fileUtil = new FileUtil();
if (!$fileUtil->isAllowFile($file)) {
error("默认只允许上传word、pdf、text、excel文档文件");
}
if (!$fileUtil->validation($file)) {
error("上传文件后缀或大小和后台设置不满足");
}
$result = $fileUtil->upload($file, $groupId);
} elseif ($type == 'image') { //上传图片
$imageUtil = new ImageUtil();
if (!$imageUtil->isAllowFile($file)) {
error("默认只允许上传常见图片格式");
}
if (!$imageUtil->validation($file)) {
error("上传图片后缀或大小和后台设置不满足");
}
$result = $imageUtil->upload($file);
}
if ($result["code"] != 1) {
error($result["msg"]);
}
$file = $result['file'];
if (!(preg_match('/(http:\/\/)|(https:\/\/)/i', $file))) { //判断是否存在
if (str_starts_with($file, "/")) {
$file = substr($file, 1, strlen($file));
}
$file = $this->domain . $file;
$result['file'] = $file;
}
success("上传成功", "", ["file" => $result["file"], "id" => $result["id"]]);
}
}