139 lines
3.3 KiB
PHP
139 lines
3.3 KiB
PHP
<?php
|
|
|
|
namespace App\Repositories\Core;
|
|
|
|
use Illuminate\Support\Facades\Storage;
|
|
use Intervention\Image\Facades\Image;
|
|
|
|
class Upload
|
|
{
|
|
public static function getData($file)
|
|
{
|
|
return [
|
|
'filename' => $file->getClientOriginalName(),
|
|
'filetype' => $file->getClientOriginalExtension(),
|
|
'filesize' => $file->getSize(),
|
|
'mime' => $file->getMimeType(),
|
|
];
|
|
}
|
|
|
|
public static function getUuid($file, $data)
|
|
{
|
|
$data = is_array($data) ? (object) $data : $data;
|
|
$pos = strrpos($file, '/');
|
|
$uuid = substr($file, $pos + 1);
|
|
|
|
return pathinfo($uuid, PATHINFO_FILENAME);
|
|
}
|
|
|
|
public static function storeByVar($var, $path, $public = false)
|
|
{
|
|
$request = Request();
|
|
|
|
return $request->has($var) ? basename($request->file($var)->store($path)) : false;
|
|
}
|
|
|
|
public static function store($file, $path)
|
|
{
|
|
return Storage::putFile($path, $file);
|
|
}
|
|
|
|
public static function storePublic($file, $filepath)
|
|
{
|
|
return Storage::putFile($filepath, $file, 'public');
|
|
}
|
|
|
|
public static function createThumb($file, $size, $sub = false)
|
|
{
|
|
$thumb = self::getThumbPath($file, $sub);
|
|
$filename = self::getPublicPath($file);
|
|
|
|
return Image::make($filename)->orientate()->widen($size)->save($thumb);
|
|
}
|
|
|
|
public static function getPublicPath($file)
|
|
{
|
|
return storage_path('app/public/'.self::getFilename($file));
|
|
}
|
|
|
|
public static function getPrivatePath($file)
|
|
{
|
|
return storage_path('app/'.self::getFilename($file));
|
|
}
|
|
|
|
public static function getSrc($file)
|
|
{
|
|
return '/storage/'.self::getFilename($file);
|
|
}
|
|
|
|
public static function getThumbPath($file)
|
|
{
|
|
return storage_path('app/public/'.self::getThumbFilename($file));
|
|
}
|
|
|
|
public static function getThumbSrc($file)
|
|
{
|
|
return '/storage/'.self::getThumbFilename($file);
|
|
}
|
|
|
|
public static function getFilename($file)
|
|
{
|
|
$file = is_array($file) ? (object) $file : $file;
|
|
|
|
return $file->filepath.'/'.self::getName($file);
|
|
}
|
|
|
|
public static function getThumbFilename($file, $sub = false)
|
|
{
|
|
$sub = $sub ? $sub : 'thumbs/';
|
|
$file = is_array($file) ? (object) $file : $file;
|
|
|
|
return $file->filepath.'/'.$sub.self::getName($file);
|
|
}
|
|
|
|
public static function getName($file)
|
|
{
|
|
$file = is_array($file) ? (object) $file : $file;
|
|
|
|
return $file->uuid.'.'.strtolower($file->filetype);
|
|
}
|
|
|
|
public static function fix($path)
|
|
{
|
|
if (! self::isWindows()) {
|
|
return $path;
|
|
}
|
|
|
|
return str_replace('/', '\\', $path);
|
|
}
|
|
|
|
public static function move($source, $dest)
|
|
{
|
|
if (Storage::exists($dest)) {
|
|
self::delete($dest);
|
|
}
|
|
|
|
return Storage::move($source, $dest);
|
|
}
|
|
|
|
public static function delete($file)
|
|
{
|
|
return Storage::exists($file) ? Storage::delete($file) : false;
|
|
}
|
|
|
|
public static function deleteRecursive($path)
|
|
{
|
|
return rmdir_recursive($path);
|
|
}
|
|
|
|
public function make_dir($path, $permissions = 0777)
|
|
{
|
|
return is_dir($path) || mkdir($path, $permissions, true);
|
|
}
|
|
|
|
public static function isWindows()
|
|
{
|
|
return strtoupper(substr(PHP_OS, 0, 3)) === 'WIN';
|
|
}
|
|
}
|