From bfccfe1a0d2aa9ebe6f1368ba7b0755ddbfa9d23 Mon Sep 17 00:00:00 2001 From: Steve <34465153+xxl4@users.noreply.github.com> Date: Thu, 21 Nov 2024 16:25:10 +0800 Subject: [PATCH] add system upload --- .../V1/Admin/Catalog/ProductController.php | 14 +++++ .../Api/V1/Admin/System/TinyMCEController.php | 51 +++++++++++++++++++ src/Routes/V1/Admin/admin.php | 5 ++ src/Routes/V1/Admin/system-routes.php | 20 ++++++++ 4 files changed, 90 insertions(+) create mode 100644 src/Http/Controllers/Api/V1/Admin/System/TinyMCEController.php create mode 100644 src/Routes/V1/Admin/system-routes.php diff --git a/src/Http/Controllers/Api/V1/Admin/Catalog/ProductController.php b/src/Http/Controllers/Api/V1/Admin/Catalog/ProductController.php index bee64de..66ef7b1 100644 --- a/src/Http/Controllers/Api/V1/Admin/Catalog/ProductController.php +++ b/src/Http/Controllers/Api/V1/Admin/Catalog/ProductController.php @@ -201,4 +201,18 @@ public function massUpdate(MassUpdateRequest $massUpdateRequest) 'message' => trans('Apis::app.admin.catalog.products.mass-operations.update-success'), ]); } + + /** + * Upload product images. + * + * @return \Illuminate\Http\Response + */ + + public function upload(Request $request) + { + $this->upload($request->all(), 'images'); + + return response([], 201); + + } } diff --git a/src/Http/Controllers/Api/V1/Admin/System/TinyMCEController.php b/src/Http/Controllers/Api/V1/Admin/System/TinyMCEController.php new file mode 100644 index 0000000..8106a6f --- /dev/null +++ b/src/Http/Controllers/Api/V1/Admin/System/TinyMCEController.php @@ -0,0 +1,51 @@ +storeMedia(); + + if (! empty($media)) { + return response()->json([ + 'location' => $media['file_url'] + ]); + } + + return response()->json([]); + } + + /** + * Store media. + * + * @return array + */ + public function storeMedia() + { + if (! request()->hasFile('file')) { + return []; + } + + return [ + 'file' => $path = request()->file('file')->store($this->storagePath), + 'file_name' => request()->file('file')->getClientOriginalName(), + 'file_url' => Storage::url($path), + ]; + } +} diff --git a/src/Routes/V1/Admin/admin.php b/src/Routes/V1/Admin/admin.php index e308c9b..2fdb091 100644 --- a/src/Routes/V1/Admin/admin.php +++ b/src/Routes/V1/Admin/admin.php @@ -50,4 +50,9 @@ * Reporting routes. */ require 'reporting-routes.php'; + + /** + * System routes. + */ + require 'system-routes.php'; }); diff --git a/src/Routes/V1/Admin/system-routes.php b/src/Routes/V1/Admin/system-routes.php new file mode 100644 index 0000000..ba09872 --- /dev/null +++ b/src/Routes/V1/Admin/system-routes.php @@ -0,0 +1,20 @@ + ['auth:sanctum', 'sanctum.admin'], + 'prefix' => 'system', +], function () { + /** + * TinyMCE routes. + */ + Route::controller(TinyMCEController::class)->prefix('tinymce')->group(function () { + Route::post('upload', 'upload'); + }); +}); \ No newline at end of file