Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
gilour
/
app
/
Classes
:
Files.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Classes; use Intervention\Image\ImageManagerStatic as Image; /** * Class Reply * @package App\Classes */ class Files { /** * @param $image * @param $dir * @param null $width * @param int $height * @param $crop * @return string * @throws \Exception */ public function upload($image, $dir, $width = null, $height = 800, $crop = false) { $companyId =''; if(admin()){ $companyId = admin()->company_id; } if (employee()){ $companyId = employee()->company_id; } /** @var UploadedFile $uploadedFile */ $uploadedFile = $image; $folder = $dir . '/'; if (!$uploadedFile->isValid()) { throw new \Exception('File was not uploaded correctly'); } $newName = $this->generateNewFileName($uploadedFile->getClientOriginalName()); $tempPath = public_path('temp/' . $newName); /** Check if folder exits or not. If not then create the folder */ if (!\File::exists(public_path('uploads/' . $folder))) { $result = \File::makeDirectory(public_path('uploads/' . $folder), 0775, true); } $newPath = $folder . '/' . $newName; /** @var UploadedFile $uploadedFile */ $uploadedFile->move(public_path('temp'), $newName); if (!empty($crop)) { // Crop image if (isset($crop[0])) { // To store the multiple images for the copped ones foreach ($crop as $cropped) { $image = Image::make($tempPath); if (isset($cropped['resize']['width']) && isset($cropped['resize']['height'])) { $image->crop(floor($cropped['width']), floor($cropped['height']), floor($cropped['x']), floor($cropped['y'])); $filename = str_replace('.', '_' . $cropped['resize']['width'] . 'x' . $cropped['resize']['height'] . '.', $newName); $tempPathCropped = public_path('temp') . '/' . $filename; $newPathCropped = $folder . '/' . $filename; // Resize in Proper format $image->resize($cropped['resize']['width'], $cropped['resize']['height'], function ($constraint) { //$constraint->aspectRatio(); // $constraint->upsize(); }); $image->save($tempPathCropped); \Storage::put($newPathCropped, \File::get($tempPathCropped), ['public']); // Deleting cropped temp file \File::delete($tempPathCropped); } } } else { $image = Image::make($tempPath); $image->crop(floor($crop['width']), floor($crop['height']), floor($crop['x']), floor($crop['y'])); $image->save(); } } if (($width || $height)) { // Crop image $image = Image::make($tempPath); $image->resize($width, $height, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); }); $image->save(); } \Storage::put($newPath, \File::get($tempPath), ['public']); // Deleting temp file \File::delete($tempPath); return $newName; } public function generateNewFileName($currentFileName) { $ext = strtolower(\File::extension($currentFileName)); $newName = md5(microtime()); if ($ext === '') { return $newName; } return $newName . '.' . $ext; } public static function deleteFile($image, $folder) { $dir = trim($folder, '/'); $path = $dir . '/' . $image; if (!\File::exists(public_path($path))) { \Storage::delete($path); } return true; } }