Edit File: UploadTrait.php
<?php namespace App\Traits; use File; use Image; trait UploadTrait { public function uploadAllTyps($file, $directory, $width = null, $height = null) { if (!File::isDirectory('storage/images/' . $directory)) { File::makeDirectory('storage/images/' . $directory, 0777, true, true); } $allowedVideosMimeTypes = ['video/mkv', 'video/mp4', 'video/avi', 'video/flv', 'video/wmv']; $allowedMimeTypes = ['application/pdf', 'application/msword', 'application/excel', 'application/vnd.ms-excel', 'application/vnd.msexcel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/octet-stream']; $allowedImagesMimeTypes = ['image/jpeg', 'image/jpg', 'image/png']; $allowedAudioMimeTypes = ['audio/mpeg', 'audio/mp3', 'audio/ogg','audio/webm', 'audio/wav', 'audio/x-m4a', 'audio/x-flac', 'audio/x-wav']; $fileMimeType = $file->getClientmimeType(); $typeCheck = explode('/', $fileMimeType); if ($typeCheck[0] == 'image' && in_array($fileMimeType, $allowedImagesMimeTypes)) { return $this->uploadeImage($file, $directory, $width, $height); } if ($typeCheck[0] == 'video' && in_array($fileMimeType, $allowedVideosMimeTypes)) { return $this->uploadFile($file, $directory); } if ($typeCheck[0] == 'audio' && in_array($fileMimeType, $allowedAudioMimeTypes)) { return $this->uploadFile($file, $directory); } if (in_array($fileMimeType, $allowedMimeTypes)) { return $this->uploadFile($file, $directory); } return 'default.png'; } public function uploadFile($file, $directory) { $filename = time() . rand(1000000, 9999999) . '.' . $file->getClientOriginalExtension(); $path = 'images/' . $directory; $filename = $file->store($path); return basename($filename); } public function uploadeImage($file, $directory, $width = null, $height = null) { $img = Image::make($file)->orientate(); $thumbsPath = 'storage/images/' . $directory; $name = time() . '_' . rand(1111, 9999) . '.' . $file->getClientOriginalExtension(); if (null != $width && null != $height) $img->resize($width, $height, function ($constraint) { $constraint->aspectRatio(); }); $img->save($thumbsPath . '/' . $name); return (string) $name; } public function deleteFile($file_name, $directory = 'unknown'): void { if ($file_name && $file_name != 'default.png' && file_exists("storage/images/$directory/$file_name")) { unlink("storage/images/$directory/$file_name"); } } public function defaultImage($directory) { return asset("/storage/images/users/default.png"); } public static function getImage($name, $directory) { return asset("storage/images/$directory/" . $name); } }
Back to File Manager