From eb83d7e2533274a2884a2efa593bfd66d8748f14 Mon Sep 17 00:00:00 2001 From: Fayyazi Date: Sat, 20 Jul 2019 15:13:18 +0430 Subject: [PATCH] upload image --- app/Http/Controllers/TestResultController.php | 85 ++++++++++++++++--- public/js/vue/app.js | 2 +- 2 files changed, 74 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/TestResultController.php b/app/Http/Controllers/TestResultController.php index c6e358ae..7e30ba95 100644 --- a/app/Http/Controllers/TestResultController.php +++ b/app/Http/Controllers/TestResultController.php @@ -250,6 +250,10 @@ class TestResultController extends Controller } $TestResult['imagesPath'] = $ImagesPath; } + else { + $TestResult['imagesPath'] = []; + } + return \MessageResponse::data($TestResult); } @@ -261,6 +265,14 @@ class TestResultController extends Controller return $path; } + public function hasFile($key) + { + if (is_array($file = $this->file($key))) $file = head($file); + + return $file instanceof \SplFileInfo; + } + + public function update(StoreTestResultRequest $request, TestResult $TestResult) { $TestResultData = [ @@ -322,20 +334,59 @@ class TestResultController extends Controller } /////////////////////////////////////////////////////////////////////Images $images = ''; - if (count($TestResult->TitleImage) && $request->imgs != null) + // if (count($TestResult->TitleImage) && $request->imgs != null) + // { + // $images = $TestResult->TitleImage; + // foreach ($images as $key => $image) { + // Storage::disk('public')->delete(static::storage_path($image->path)); + // Uploadable::where('gallery_id', $image->id)->where('uploadable_id', $TestResult->id)->where('uploadable_type', get_class($TestResult))->delete(); + // Gallery::where('id', $image->id)->delete(); + // } + // } + // + // if ($request->imgs != null) { + // foreach ($request->imgs as $key => $img) {// + // + // $Image = $img; + // $InterventionImage = Image::make($Image); + // $Mime = explode('/', $InterventionImage->mime()); + // + // $ImageName = time().$key.'.'.$Mime[1]; + // $Path = 'uploads'.'/TestResults'.'/'.$TestResult->id .'/'.$ImageName; + // + // Storage::disk('public')->makeDirectory('TestResults'.'/'.$TestResult->id); + // $InterventionImage->save(public_path($Path)); + // + // //-------------------------------------------------------- + // $GalleryObj = Gallery::create(['user_id' => auth('api')->user()->id, 'path' => $Path]); + // $Uploadable = Uploadable::create(['uploadable_id' => $TestResult->id, 'uploadable_type' => 'App\TestResult', 'gallery_id' => $GalleryObj->id, 'image_role' => 'TitleImage']); + // //-------------------------------------------------------- + // + // }// + // } + if (count($TestResult->TitleImage)) { $images = $TestResult->TitleImage; + $imageExist = []; + $imagesDeleted = []; foreach ($images as $key => $image) { - Storage::disk('public')->delete(static::storage_path($image->path)); - Uploadable::where('gallery_id', $image->id)->where('uploadable_id', $TestResult->id)->where('uploadable_type', get_class($TestResult))->delete(); - Gallery::where('id', $image->id)->delete(); + $imageExist[] = '/'.$image->path; + if (!in_array('/'.$image->path, $request->imgs)) { + $imagesDeleted[] = $image->path; + } } + } - if ($request->imgs != null) { - foreach ($request->imgs as $key => $img) {// + + if ($request->imgs != null) { + $request_imgs = array_diff($request->imgs, $imageExist); + + foreach ($request_imgs as $key => $img) {// + $Image = $img; + $InterventionImage = Image::make($Image); $Mime = explode('/', $InterventionImage->mime()); @@ -345,13 +396,23 @@ class TestResultController extends Controller Storage::disk('public')->makeDirectory('TestResults'.'/'.$TestResult->id); $InterventionImage->save(public_path($Path)); - //-------------------------------------------------------- - $GalleryObj = Gallery::create(['user_id' => auth('api')->user()->id, 'path' => $Path]); - $Uploadable = Uploadable::create(['uploadable_id' => $TestResult->id, 'uploadable_type' => 'App\TestResult', 'gallery_id' => $GalleryObj->id, 'image_role' => 'TitleImage']); - //-------------------------------------------------------- + //-------------------------------------------------------- + $GalleryObj = Gallery::create(['user_id' => auth('api')->user()->id, 'path' => $Path]); + $Uploadable = Uploadable::create(['uploadable_id' => $TestResult->id, 'uploadable_type' => 'App\TestResult', 'gallery_id' => $GalleryObj->id, 'image_role' => 'TitleImage']); + //-------------------------------------------------------- + } - }// - } + foreach ($imagesDeleted as $key => $imageDeleted) { + $Gallery = Gallery::where('path', $imageDeleted)->findOrFail(); + if ($Gallery) { + Storage::disk('public')->delete(static::storage_path($imageDeleted)); + Uploadable::where('gallery_id', $Gallery->id)->where('uploadable_id', $TestResult->id)->where('uploadable_type', get_class($TestResult))->delete(); + $Gallery->delete(); + } + } + + + } return \MessageResponse::success(null,trans('messages.update')); } diff --git a/public/js/vue/app.js b/public/js/vue/app.js index 9059c933..26ddc3eb 100644 --- a/public/js/vue/app.js +++ b/public/js/vue/app.js @@ -43,7 +43,7 @@ /******/ /******/ // script path function /******/ function jsonpScriptSrc(chunkId) { -/******/ return __webpack_require__.p + "js/vue/chunks/" + ({}[chunkId]||chunkId) + "." + {"0":"cee19c932dbc149a1cc9","1":"5281a63adedfa1ab604f","2":"743b89b9bb2dabfa3ffe","3":"a050b1a548ee0857d2f7","4":"7c6e05813e662d286d09","5":"8d7463d42653e02550f1","6":"68a5b0bbe6eb4c67723e","7":"af7adc54a3d58c0fca09","8":"320bd23018e7d45c2399","9":"b090838ef04dc8eece14","10":"9603d5be0ae5c93d2b34","11":"cf996f3dc28b604a3d3a","12":"febbfeb844354a0cdbff","13":"7441ce1b806f3f78bcbb","14":"8da587ed5e5037bb178c","15":"dc3f54190c64738d2bee","16":"b032a406fa78aefbf408","17":"aeda8d2fe82355b16c66","18":"4c39b4598f53fc5610c2","19":"44988f4163efeba55699","20":"08150bc9a6df0102406e","21":"bc068c1d2ec99a9965de","22":"9aa5bdc2ef1c37f1d6f4","23":"99044b1527f8753dde51","24":"8e2e76e3b7f37492e02f","25":"307ef9252407d3b20451","26":"174e16952c4ab044e8bf","27":"bfdd4afc7d67ccd7ea27"}[chunkId] + ".js" +/******/ return __webpack_require__.p + "js/vue/chunks/" + ({}[chunkId]||chunkId) + "." + {"0":"cee19c932dbc149a1cc9","1":"5281a63adedfa1ab604f","2":"743b89b9bb2dabfa3ffe","3":"a050b1a548ee0857d2f7","4":"7c6e05813e662d286d09","5":"8d7463d42653e02550f1","6":"68a5b0bbe6eb4c67723e","7":"7b4c284293f5dd57a85d","8":"320bd23018e7d45c2399","9":"8ee8007e77852469f798","10":"9603d5be0ae5c93d2b34","11":"cf996f3dc28b604a3d3a","12":"febbfeb844354a0cdbff","13":"7441ce1b806f3f78bcbb","14":"8da587ed5e5037bb178c","15":"dc3f54190c64738d2bee","16":"b032a406fa78aefbf408","17":"aeda8d2fe82355b16c66","18":"4c39b4598f53fc5610c2","19":"44988f4163efeba55699","20":"08150bc9a6df0102406e","21":"bc068c1d2ec99a9965de","22":"9aa5bdc2ef1c37f1d6f4","23":"99044b1527f8753dde51","24":"8e2e76e3b7f37492e02f","25":"b7fe930c0eda2e6e82a5","26":"174e16952c4ab044e8bf","27":"bfdd4afc7d67ccd7ea27"}[chunkId] + ".js" /******/ } /******/ /******/ // The require function