⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.19
Server IP:
178.33.27.10
Server:
Linux cpanel.dev-unit.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
Server Software:
Apache/2.4.57 (Unix) OpenSSL/1.0.2k-fips
PHP Version:
8.2.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
id
/
dalily.dev-unit.com
/
app
/
Services
/
Picture
/
View File Name :
SingleStepPictures.php
<?php /* * LaraClassifier - Classified Ads Web Application * Copyright (c) BeDigit. All Rights Reserved * * Website: https://laraclassifier.com * Author: Mayeul Akpovi (BeDigit - https://bedigit.com) * * LICENSE * ------- * This software is provided under a license agreement and may only be used or copied * in accordance with its terms, including the inclusion of the above copyright notice. * As this software is sold exclusively on CodeCanyon, * please review the full license details here: https://codecanyon.net/licenses/standard */ namespace App\Services\Picture; use App\Helpers\Common\Files\FileSys; use App\Helpers\Common\Files\Upload; use App\Jobs\GeneratePostThumbnails; use App\Models\Picture; use App\Models\Post; use App\Models\Scopes\ReviewedScope; use App\Models\Scopes\VerifiedScope; use Illuminate\Http\Request; trait SingleStepPictures { /** * @param $postId * @param \Illuminate\Http\Request $request * @return array * @throws \App\Exceptions\Custom\CustomException */ public function singleStepPicturesStore($postId, Request $request): array { $pictures = []; // Get pictures' uploaded files $files = (array)$request->file('pictures', $request->files->get('pictures')); // If files not found again, return an empty array if (empty($files)) { return $pictures; } // Get pictures' post $post = Post::query() ->withoutGlobalScopes([VerifiedScope::class, ReviewedScope::class]) ->where('id', $postId) ->first(); if (empty($post)) { return $pictures; } // Save all pictures $i = 0; foreach ($files as $key => $file) { if (empty($file)) { continue; } $picturePosition = $i; if (in_array($request->method(), ['PUT', 'PATCH', 'UPDATE'])) { // Delete old file if new file has uploaded // Check if current Listing have a pictures $possiblePictures = Picture::query()->where('post_id', $post->id)->where('id', $key); if ($possiblePictures->count() > 0) { $picture = $possiblePictures->first(); $picturePosition = $picture->position; $picture->delete(); } } // Save Post's Picture in DB $picture = new Picture([ 'post_id' => $post->id, 'file_path' => null, 'mime_type' => null, 'position' => $picturePosition, ]); // Upload File $destPath = 'files/' . strtolower($post->country_code) . '/' . $post->id; $picture->file_path = Upload::image($file, $destPath, null, true); $picture->mime_type = FileSys::getMimeType($file); if (!empty($picture->file_path)) { $picture->save(); } $pictures[] = $picture; $i++; } // Generate the listing's images thumbnails GeneratePostThumbnails::dispatchSync($post); return $pictures; } }