diff --git a/.gitignore b/.gitignore index c2d8bf4..f4a40cc 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ package-lock.json composer.phar composer.lock phpunit.xml -mix-manifest.json \ No newline at end of file +mix-manifest.json +/.idea diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..55f7dfc --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/Http/Controllers/FilemanagerToolController.php b/src/Http/Controllers/FilemanagerToolController.php index 79d5152..20c0da1 100755 --- a/src/Http/Controllers/FilemanagerToolController.php +++ b/src/Http/Controllers/FilemanagerToolController.php @@ -9,17 +9,12 @@ class FilemanagerToolController extends Controller { - /** - * @var mixed - */ - protected $service; /** - * @param FileManagerService $filemanagerService + * @return FileManagerService */ - public function __construct(FileManagerService $filemanagerService) - { - $this->service = $filemanagerService; + protected function service(){ + return $this->service = new FileManagerService(); } /** @@ -27,7 +22,7 @@ public function __construct(FileManagerService $filemanagerService) */ public function getData(Request $request) { - return $this->service->ajaxGetFilesAndFolders($request); + return $this->service()->ajaxGetFilesAndFolders($request); } /** @@ -35,7 +30,7 @@ public function getData(Request $request) */ public function getDataField($resource, $attribute, NovaRequest $request) { - return $this->service->ajaxGetFilesAndFolders($request); + return $this->service()->ajaxGetFilesAndFolders($request); } /** @@ -43,7 +38,7 @@ public function getDataField($resource, $attribute, NovaRequest $request) */ public function createFolder(Request $request) { - return $this->service->createFolderOnPath($request->folder, $request->current); + return $this->service()->createFolderOnPath($request->folder, $request->current); } /** @@ -51,7 +46,7 @@ public function createFolder(Request $request) */ public function deleteFolder(Request $request) { - return $this->service->deleteDirectory($request->current); + return $this->service()->deleteDirectory($request->current); } /** @@ -61,7 +56,7 @@ public function upload(Request $request) { $uploadingFolder = $request->folder ?? false; - return $this->service->uploadFile( + return $this->service()->uploadFile( $request->file, $request->current ?? '', $request->visibility, @@ -75,7 +70,7 @@ public function upload(Request $request) */ public function move(Request $request) { - return $this->service->moveFile($request->old, $request->path); + return $this->service()->moveFile($request->old, $request->path); } /** @@ -83,7 +78,7 @@ public function move(Request $request) */ public function getInfo(Request $request) { - return $this->service->getFileInfo($request->file); + return $this->service()->getFileInfo($request->file); } /** @@ -91,7 +86,7 @@ public function getInfo(Request $request) */ public function removeFile(Request $request) { - return $this->service->removeFile($request->file, $request->type); + return $this->service()->removeFile($request->file, $request->type); } /** @@ -99,7 +94,7 @@ public function removeFile(Request $request) */ public function renameFile(Request $request) { - return $this->service->renameFile($request->file, $request->name); + return $this->service()->renameFile($request->file, $request->name); } /** @@ -107,7 +102,7 @@ public function renameFile(Request $request) */ public function downloadFile(Request $request) { - return $this->service->downloadFile($request->file); + return $this->service()->downloadFile($request->file); } /** @@ -115,7 +110,7 @@ public function downloadFile(Request $request) */ public function rename(Request $request) { - return $this->service->renameFile($request->path, $request->name); + return $this->service()->renameFile($request->path, $request->name); } /** @@ -123,7 +118,7 @@ public function rename(Request $request) */ public function folderUploadedEvent(Request $request) { - return $this->service->folderUploadedEvent($request->path); + return $this->service()->folderUploadedEvent($request->path); } /** diff --git a/src/Http/Services/GetFiles.php b/src/Http/Services/GetFiles.php index a23d567..98d2913 100644 --- a/src/Http/Services/GetFiles.php +++ b/src/Http/Services/GetFiles.php @@ -4,12 +4,12 @@ use Carbon\Carbon; use GuzzleHttp\Client; -use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; +use Infinety\Filemanager\Traits\StorageHelpers; trait GetFiles { - use FileFunctions; + use FileFunctions, StorageHelpers; /** * Cloud disks. @@ -72,7 +72,7 @@ public function getFileData($file, $id) 'size' => ($file['size'] != 0) ? $file['size'] : 0, 'size_human' => ($file['size'] != 0) ? $this->formatBytes($file['size'], 0) : 0, 'thumb' => $this->getThumbFile($file), - 'asset' => $this->cleanSlashes($this->storage->url($file['basename'])), + 'asset' => $this->cleanSlashes($this->url($this->storage,$file['basename'])), 'can' => true, 'loading' => false, ]; @@ -320,7 +320,7 @@ public function getThumb($file, $folder = false) if (Str::contains($mime, 'image') || $extension == 'svg') { if (method_exists($this->storage, 'put')) { - return $this->storage->url($file['path']); + return $this->url($this->storage, $file['path']); } return $folder.'/'.$file['basename']; @@ -359,7 +359,7 @@ public function getImageDimesionsFromCloud($file) try { $client = new Client(); - $response = $client->get($this->storage->url($file['path']), ['stream' => true]); + $response = $client->get($this->url($this->storage, $file['path']), ['stream' => true]); $image = imagecreatefromstring($response->getBody()->getContents()); $dims = [imagesx($image), imagesy($image)]; imagedestroy($image); @@ -450,7 +450,7 @@ public function generateParent($folder) 'size' => 0, 'size_human' => 0, 'thumb' => '', - 'asset' => $this->cleanSlashes($this->storage->url($folderPath)), + 'asset' => $this->cleanSlashes($this->url($this->storage, $folderPath)), 'can' => true, 'loading' => false, 'last_modification' => false, diff --git a/src/Http/Services/NormalizeFile.php b/src/Http/Services/NormalizeFile.php index ee12c9d..aca245f 100644 --- a/src/Http/Services/NormalizeFile.php +++ b/src/Http/Services/NormalizeFile.php @@ -6,13 +6,14 @@ use Illuminate\Filesystem\FilesystemAdapter; use Illuminate\Support\Collection; use Illuminate\Support\Str; +use Infinety\Filemanager\Traits\StorageHelpers; use RarArchive; use SplFileInfo; use ZipArchive; class NormalizeFile { - use FileFunctions; + use FileFunctions, StorageHelpers; /** * @var mixed @@ -50,7 +51,7 @@ public function toArray() 'mime' => $this->getCorrectMimeFileType(), 'path' => $this->storagePath, 'size' => $this->getFileSize(), - 'url' => $this->cleanSlashes($this->storage->url($this->storagePath)), + 'url' => $this->cleanSlashes($this->url($this->storage,$this->storagePath)), 'date' => $this->modificationDate(), 'ext' => $this->file->getExtension(), ]); @@ -77,7 +78,7 @@ private function setExtras(Collection $data) // Video if (Str::contains($mime, 'audio')) { $data->put('type', 'audio'); - $src = str_replace(env('APP_URL'), '', $this->storage->url($this->storagePath)); + $src = str_replace(env('APP_URL'), '', $this->url($this->storage,$this->storagePath)); $data->put('src', $src); } @@ -145,7 +146,7 @@ public function getFileSize() private function getImage($mime, $extension = false) { if (Str::contains($mime, 'image') || $extension == 'svg') { - return $this->storage->url($this->storagePath); + return $this->url($this->storage,$this->storagePath); } $fileType = new FileTypesImages(); diff --git a/src/Traits/StorageHelpers.php b/src/Traits/StorageHelpers.php new file mode 100644 index 0000000..704adf2 --- /dev/null +++ b/src/Traits/StorageHelpers.php @@ -0,0 +1,18 @@ +getDriver()->getAdapter(); + if ($adapter instanceof AwsS3Adapter){ + return $fs->getAwsTemporaryUrl($adapter, $path, $expiration, $options); + } + return $fs->url($path); + } +}