From 4683d0f404c1cd511cfbe881e435d9865f6909d0 Mon Sep 17 00:00:00 2001 From: Edward Yang Date: Fri, 22 Jul 2022 16:07:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/FileManagerController.php | 21 ++++++++++++++++-- beike/Admin/Routes/admin.php | 3 ++- beike/Admin/Services/FileManagerService.php | 22 ++++++++++++++++++- 3 files changed, 42 insertions(+), 4 deletions(-) diff --git a/beike/Admin/Http/Controllers/FileManagerController.php b/beike/Admin/Http/Controllers/FileManagerController.php index a2e01a72..89b95429 100644 --- a/beike/Admin/Http/Controllers/FileManagerController.php +++ b/beike/Admin/Http/Controllers/FileManagerController.php @@ -77,14 +77,31 @@ class FileManagerController extends Controller /** * 删除文件或文件夹 - * DELETE /admin/file_manager/delete + * DELETE /admin/file_manager/files {"path":"/xx/yy", "files":["1.jpg", "2.png"]} * @throws \Exception */ public function destroyFiles(Request $request): array + { + $requestData = json_decode($request->getContent(), true); + $basePath = $requestData['path'] ?? ''; + $files = $requestData['files'] ?? []; + (new FileManagerService)->deleteFiles($basePath, $files); + return json_success('删除成功'); + } + + + /** + * 删除文件夹 + * + * @param Request $request + * @return array + * @throws \Exception + */ + public function destroyDirectories(Request $request): array { $folderName = $request->get('name'); (new FileManagerService)->deleteDirectoryOrFile($folderName); - return json_success('删除成功'); + return json_success('文件夹删除成功'); } diff --git a/beike/Admin/Routes/admin.php b/beike/Admin/Routes/admin.php index b092648c..d57abf74 100644 --- a/beike/Admin/Routes/admin.php +++ b/beike/Admin/Routes/admin.php @@ -45,7 +45,8 @@ Route::prefix($adminName) Route::post('file_manager/directories', [Controllers\FileManagerController::class, 'createDirectory'])->name('file_manager.create_directory'); 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, 'destroyFiles'])->name('file_manager.delete_files'); + Route::delete('file_manager/files', [Controllers\FileManagerController::class, 'destroyFiles'])->name('file_manager.delete_files'); + Route::delete('file_manager/directories', [Controllers\FileManagerController::class, 'destroyDirectories'])->name('file_manager.delete_directories'); 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 2cf81fd6..9fc5e633 100644 --- a/beike/Admin/Services/FileManagerService.php +++ b/beike/Admin/Services/FileManagerService.php @@ -103,7 +103,7 @@ class FileManagerService /** - * 批量删除文件或文件夹 + * 删除文件或文件夹 * * @param $filePath * @throws \Exception @@ -123,6 +123,26 @@ class FileManagerService } + /** + * 批量删除文件 + * + * @param $basePath + * @param $files + */ + public function deleteFiles($basePath, $files) + { + if (empty($basePath) && empty($files)) { + return; + } + foreach ($files as $file) { + $filePath = $basePath . '/' . $file; + if (file_exists($filePath)) { + @unlink($filePath); + } + } + } + + /** * 修改文件夹或者文件名称 *