批量删除文件

This commit is contained in:
Edward Yang 2022-07-22 16:07:43 +08:00
parent f65f4129ee
commit 4683d0f404
3 changed files with 42 additions and 4 deletions

View File

@ -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('文件夹删除成功');
}

View File

@ -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');

View File

@ -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);
}
}
}
/**
* 修改文件夹或者文件名称
*