61 lines
2.1 KiB
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"]]);
|
|
}
|
|
} |