作者 赵彬吉

update

  1 +<?php
  2 +
  3 +namespace App\Http\Controllers\Bside\FileManage;
  4 +
  5 +
  6 +use App\Enums\Common\Code;
  7 +use App\Http\Controllers\Bside\BaseController;
  8 +use App\Models\Nav\BNavGroup;
  9 +use App\Models\Project\Project;
  10 +use Illuminate\Http\Request;
  11 +
  12 +/**
  13 + * 文件管理
  14 + * Class FileManageController
  15 + * @package App\Http\Controllers\Bside\Nav
  16 + * @author zbj
  17 + * @date 2023/10/9
  18 + */
  19 +class FileManageController extends BaseController
  20 +{
  21 + protected $upload_config;
  22 +
  23 + public function __construct(Request $request)
  24 + {
  25 + parent::__construct($request);
  26 + //判断是否开启
  27 + $project = Project::find($this->user['project_id']);
  28 + if(empty($project['is_upload_manage'])){
  29 + $this->fail('文件上传管理功能未开启');
  30 + }
  31 + $this->upload_config = $project['upload_config'];
  32 + }
  33 +
  34 + public function index(BNavGroup $nav_group){
  35 + $this->map['project_id'] = $this->user['project_id'];
  36 + $lists = $nav_group->list($this->map, 'id', ['id', 'name'], 'asc');
  37 + $this->response('success',Code::SUCCESS,$lists);
  38 + }
  39 +
  40 + public function upload(Request $request){
  41 + $request->validate([
  42 + 'file'=>['required'],
  43 + ],[
  44 + 'file.required'=>'请上传文件',
  45 + ]);
  46 + $file = $request->file('file');
  47 + //todo 上传数量限制
  48 + $count = 0;
  49 + if($count >= $this->upload_config['upload_max_num']){
  50 + $this->fail('超出最大上传文件数量限制:'. $this->upload_config['upload_max_num']);
  51 + }
  52 + if($file->getSize()/1024/1024 > $this->upload_config['upload_max_size']){
  53 + $this->fail('超出最大允许上传文件大小:'. $this->upload_config['upload_max_size'] .'M');
  54 + }
  55 + $extension = $file->getClientOriginalExtension();
  56 + if(!in_array($extension, explode(',', $this->upload_config['allow_file_type']))){
  57 + $this->fail('不符合允许上传的文件类型:'. $this->upload_config['allow_file_type']);
  58 + }
  59 + $original_name = $file->getClientOriginalName();
  60 + $path = '/file_manage/' . sha1($this->user['project_id']) . '/' . $original_name;
  61 + dump($path);exit;
  62 + return $this->single($files);
  63 +
  64 + }
  65 +
  66 + public function delete(Request $request){
  67 + $request->validate([
  68 + 'id'=>'required',
  69 + ],[
  70 + 'id.required' => 'ID不能为空',
  71 + ]);
  72 + if(in_array($this->param['id'], [BNavGroup::DEFAULT_HEADER_ID,BNavGroup::DEFAULT_FOOTER_ID])){
  73 + $this->fail('系统内置菜单组不能删除');
  74 + }
  75 + $nav_group = BNavGroup::find($this->param['id']);
  76 + if(!$nav_group){
  77 + $this->response('数据不存在或者已经删除');
  78 + }
  79 + $nav_group->delete();
  80 +
  81 + $this->response('success');
  82 + }
  83 +}
@@ -26,7 +26,7 @@ class Logic @@ -26,7 +26,7 @@ class Logic
26 26
27 protected $side; 27 protected $side;
28 28
29 - protected $is_cache = true; //是否缓存数据 29 + protected $is_cache = false; //是否缓存数据
30 30
31 protected $with = []; //预加载多个关联 31 protected $with = []; //预加载多个关联
32 32
@@ -366,6 +366,13 @@ Route::middleware(['bloginauth'])->group(function () { @@ -366,6 +366,13 @@ Route::middleware(['bloginauth'])->group(function () {
366 Route::prefix('import')->group(function () { 366 Route::prefix('import')->group(function () {
367 Route::any('/add_task', [\App\Http\Controllers\Bside\Import\ImportController::class, 'save'])->name('import_add_task'); 367 Route::any('/add_task', [\App\Http\Controllers\Bside\Import\ImportController::class, 'save'])->name('import_add_task');
368 }); 368 });
  369 +
  370 + //文件管理
  371 + Route::prefix('file_manager')->group(function () {
  372 + Route::any('/', [\App\Http\Controllers\Bside\FileManage\FileManageController::class, 'index'])->name('file_manager');
  373 + Route::any('/upload', [\App\Http\Controllers\Bside\FileManage\FileManageController::class, 'upload'])->name('file_manager_upload');
  374 + Route::any('/delete', [\App\Http\Controllers\Bside\FileManage\FileManageController::class, 'delete'])->name('file_manager_delete');
  375 + });
369 }); 376 });
370 //无需登录验证的路由组 377 //无需登录验证的路由组
371 Route::group([], function () { 378 Route::group([], function () {