From 629e9bad662cc8ac6ff59e7ed79d109c19cc4f83 Mon Sep 17 00:00:00 2001 From: Edward Yang Date: Wed, 13 Jul 2022 11:02:57 +0800 Subject: [PATCH] fixed file manager --- .../Controllers/FilemanagerController.php | 20 ++++--- beike/Admin/Routes/admin.php | 57 ++++++++++--------- beike/Admin/Services/FileManagerService.php | 9 ++- 3 files changed, 48 insertions(+), 38 deletions(-) diff --git a/beike/Admin/Http/Controllers/FilemanagerController.php b/beike/Admin/Http/Controllers/FilemanagerController.php index 43a0fd16..19824bc4 100644 --- a/beike/Admin/Http/Controllers/FilemanagerController.php +++ b/beike/Admin/Http/Controllers/FilemanagerController.php @@ -41,26 +41,28 @@ class FileManagerController extends Controller /** - * 删除文件或文件夹 - * DELETE /admin/file_manager/{file_manager} + * 文件或文件夹改名 + * PUT /admin/file_manager/rename * @throws \Exception */ - public function destroy(Request $request): array + public function rename(Request $request): array { - $folderName = $request->get('name'); - (new FileManagerService)->deleteDirectoryOrFile($folderName); + $originPath = $request->get('origin_name'); + $newPath = $request->get('new_name'); + (new FileManagerService)->updateName($originPath, $newPath); return json_success('删除成功'); } /** - * 文件或文件夹改名 - * PUT /admin/file_manager/{file_manager} + * 删除文件或文件夹 + * DELETE /admin/file_manager/delete + * @throws \Exception */ - public function update(Request $request) + public function destroyFiles(Request $request): array { $folderName = $request->get('name'); - (new FileManagerService)->updateName($folderName); + (new FileManagerService)->deleteDirectoryOrFile($folderName); return json_success('删除成功'); } diff --git a/beike/Admin/Routes/admin.php b/beike/Admin/Routes/admin.php index 5414cf10..9af0d734 100644 --- a/beike/Admin/Routes/admin.php +++ b/beike/Admin/Routes/admin.php @@ -1,5 +1,6 @@ middleware(['web']) ->name("{$adminName}.") ->group(function () { - Route::get('login', [\Beike\Admin\Http\Controllers\LoginController::class, 'show'])->name('login.show'); - Route::post('login', [\Beike\Admin\Http\Controllers\LoginController::class, 'store'])->name('login.store'); + Route::get('login', [Controllers\LoginController::class, 'show'])->name('login.show'); + Route::post('login', [Controllers\LoginController::class, 'store'])->name('login.store'); Route::middleware('admin_auth:' . \Beike\Models\AdminUser::AUTH_GUARD) ->group(function () { - Route::get('/', [\Beike\Admin\Http\Controllers\HomeController::class, 'index'])->name('home.index'); + Route::get('/', [Controllers\HomeController::class, 'index'])->name('home.index'); - Route::Resource('categories', \Beike\Admin\Http\Controllers\CategoryController::class); - Route::get('design/builder', [\Beike\Admin\Http\Controllers\DesignController::class, 'index'])->name('design.index'); - Route::put('design/builder', [\Beike\Admin\Http\Controllers\DesignController::class, 'update'])->name('design.update'); - Route::put('design/builder/module', [\Beike\Admin\Http\Controllers\DesignController::class, 'showModule'])->name('design.module.show'); + Route::Resource('categories', Controllers\CategoryController::class); + Route::get('design/builder', [Controllers\DesignController::class, 'index'])->name('design.index'); + Route::put('design/builder', [Controllers\DesignController::class, 'update'])->name('design.update'); + Route::put('design/builder/module', [Controllers\DesignController::class, 'showModule'])->name('design.module.show'); - Route::Resource('files', \Beike\Admin\Http\Controllers\FileController::class); + Route::Resource('files', Controllers\FileController::class); - Route::Resource('file_manager', \Beike\Admin\Http\Controllers\FileManagerController::class); - Route::post('file_manager/upload', [\Beike\Admin\Http\Controllers\FileManagerController::class, 'uploadFiles'])->name('file_manager.upload'); + Route::get('file_manager', [Controllers\FileManagerController::class, 'index'])->name('file_manager.index'); + Route::post('file_manager/upload', [Controllers\FileManagerController::class, 'uploadFiles'])->name('file_manager.upload'); + Route::post('file_manager/rename', [Controllers\FileManagerController::class, 'rename'])->name('file_manager.rename'); + Route::delete('file_manager/delete_files', [Controllers\FileManagerController::class, 'deleteFiles'])->name('file_manager.delete_files'); - Route::Resource('customers', \Beike\Admin\Http\Controllers\CustomerController::class); - Route::resource('customers.addresses', \Beike\Admin\Http\Controllers\AddressController::class); - Route::resource('countries.zones', \Beike\Admin\Http\Controllers\ZoneController::class); - Route::Resource('customer_groups', \Beike\Admin\Http\Controllers\CustomerGroupController::class); + Route::Resource('customers', Controllers\CustomerController::class); + Route::resource('customers.addresses', Controllers\AddressController::class); + Route::resource('countries.zones', Controllers\ZoneController::class); + Route::Resource('customer_groups', Controllers\CustomerGroupController::class); - Route::put('products/restore', [\Beike\Admin\Http\Controllers\ProductController::class, 'restore']); - Route::resource('products', \Beike\Admin\Http\Controllers\ProductController::class); - Route::resource('currencies', \Beike\Admin\Http\Controllers\CurrencyController::class); + Route::put('products/restore', [Controllers\ProductController::class, 'restore']); + Route::resource('products', Controllers\ProductController::class); + Route::resource('currencies', Controllers\CurrencyController::class); - Route::get('orders', [\Beike\Admin\Http\Controllers\OrderController::class, 'index'])->name('orders.index'); - Route::get('orders/{order}', [\Beike\Admin\Http\Controllers\OrderController::class, 'show'])->name('orders.show'); + Route::get('orders', [Controllers\OrderController::class, 'index'])->name('orders.index'); + Route::get('orders/{order}', [Controllers\OrderController::class, 'show'])->name('orders.show'); - Route::get('settings', [\Beike\Admin\Http\Controllers\SettingController::class, 'index'])->name('settings.index'); + Route::get('settings', [Controllers\SettingController::class, 'index'])->name('settings.index'); - Route::get('plugins', [\Beike\Admin\Http\Controllers\PluginController::class, 'index'])->name('plugins.index'); - Route::get('plugins/{code}/edit', [\Beike\Admin\Http\Controllers\PluginController::class, 'edit'])->name('plugins.edit'); - Route::put('plugins/{code}', [\Beike\Admin\Http\Controllers\PluginController::class, 'update'])->name('plugins.update'); - Route::put('plugins/{code}/status', [\Beike\Admin\Http\Controllers\PluginController::class, 'updateStatus'])->name('plugins.update_status'); - Route::post('plugins/{code}/install', [\Beike\Admin\Http\Controllers\PluginController::class, 'install'])->name('plugins.install'); - Route::post('plugins/{code}/uninstall', [\Beike\Admin\Http\Controllers\PluginController::class, 'uninstall'])->name('plugins.uninstall'); + Route::get('plugins', [Controllers\PluginController::class, 'index'])->name('plugins.index'); + Route::get('plugins/{code}/edit', [Controllers\PluginController::class, 'edit'])->name('plugins.edit'); + Route::put('plugins/{code}', [Controllers\PluginController::class, 'update'])->name('plugins.update'); + Route::put('plugins/{code}/status', [Controllers\PluginController::class, 'updateStatus'])->name('plugins.update_status'); + Route::post('plugins/{code}/install', [Controllers\PluginController::class, 'install'])->name('plugins.install'); + Route::post('plugins/{code}/uninstall', [Controllers\PluginController::class, 'uninstall'])->name('plugins.uninstall'); - Route::get('logout', [\Beike\Admin\Http\Controllers\LogoutController::class, 'index'])->name('logout.index'); + Route::get('logout', [Controllers\LogoutController::class, 'index'])->name('logout.index'); }); diff --git a/beike/Admin/Services/FileManagerService.php b/beike/Admin/Services/FileManagerService.php index 6a90cfb6..27f8c965 100644 --- a/beike/Admin/Services/FileManagerService.php +++ b/beike/Admin/Services/FileManagerService.php @@ -103,9 +103,14 @@ class FileManagerService } - public function updateName() + public function updateName($originPath, $newPath) { - + $originPath = public_path("catalog/{$originPath}"); + $newPath = public_path("catalog/{$newPath}"); + if (!is_dir($originPath) || !file_exists($originPath)) { + throw new \Exception('原始文件或者文件夹无效'); + } + @rename($originPath, $newPath); }