作者 赵彬吉

update

<?php
namespace App\Http\Controllers\Bside\FileManage;
use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Models\Nav\BNavGroup;
use App\Models\Project\Project;
use Illuminate\Http\Request;
/**
* 文件管理
* Class FileManageController
* @package App\Http\Controllers\Bside\Nav
* @author zbj
* @date 2023/10/9
*/
class FileManageController extends BaseController
{
protected $upload_config;
public function __construct(Request $request)
{
parent::__construct($request);
//判断是否开启
$project = Project::find($this->user['project_id']);
if(empty($project['is_upload_manage'])){
$this->fail('文件上传管理功能未开启');
}
$this->upload_config = $project['upload_config'];
}
public function index(BNavGroup $nav_group){
$this->map['project_id'] = $this->user['project_id'];
$lists = $nav_group->list($this->map, 'id', ['id', 'name'], 'asc');
$this->response('success',Code::SUCCESS,$lists);
}
public function upload(Request $request){
$request->validate([
'file'=>['required'],
],[
'file.required'=>'请上传文件',
]);
$file = $request->file('file');
//todo 上传数量限制
$count = 0;
if($count >= $this->upload_config['upload_max_num']){
$this->fail('超出最大上传文件数量限制:'. $this->upload_config['upload_max_num']);
}
if($file->getSize()/1024/1024 > $this->upload_config['upload_max_size']){
$this->fail('超出最大允许上传文件大小:'. $this->upload_config['upload_max_size'] .'M');
}
$extension = $file->getClientOriginalExtension();
if(!in_array($extension, explode(',', $this->upload_config['allow_file_type']))){
$this->fail('不符合允许上传的文件类型:'. $this->upload_config['allow_file_type']);
}
$original_name = $file->getClientOriginalName();
$path = '/file_manage/' . sha1($this->user['project_id']) . '/' . $original_name;
dump($path);exit;
return $this->single($files);
}
public function delete(Request $request){
$request->validate([
'id'=>'required',
],[
'id.required' => 'ID不能为空',
]);
if(in_array($this->param['id'], [BNavGroup::DEFAULT_HEADER_ID,BNavGroup::DEFAULT_FOOTER_ID])){
$this->fail('系统内置菜单组不能删除');
}
$nav_group = BNavGroup::find($this->param['id']);
if(!$nav_group){
$this->response('数据不存在或者已经删除');
}
$nav_group->delete();
$this->response('success');
}
}
... ...
... ... @@ -26,7 +26,7 @@ class Logic
protected $side;
protected $is_cache = true; //是否缓存数据
protected $is_cache = false; //是否缓存数据
protected $with = []; //预加载多个关联
... ...
... ... @@ -366,6 +366,13 @@ Route::middleware(['bloginauth'])->group(function () {
Route::prefix('import')->group(function () {
Route::any('/add_task', [\App\Http\Controllers\Bside\Import\ImportController::class, 'save'])->name('import_add_task');
});
//文件管理
Route::prefix('file_manager')->group(function () {
Route::any('/', [\App\Http\Controllers\Bside\FileManage\FileManageController::class, 'index'])->name('file_manager');
Route::any('/upload', [\App\Http\Controllers\Bside\FileManage\FileManageController::class, 'upload'])->name('file_manager_upload');
Route::any('/delete', [\App\Http\Controllers\Bside\FileManage\FileManageController::class, 'delete'])->name('file_manager_delete');
});
});
//无需登录验证的路由组
Route::group([], function () {
... ...