Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ package-lock.json
composer.phar
composer.lock
phpunit.xml
mix-manifest.json
mix-manifest.json
/.idea
8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

35 changes: 15 additions & 20 deletions src/Http/Controllers/FilemanagerToolController.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,49 +9,44 @@

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();
}

/**
* @param Request $request
*/
public function getData(Request $request)
{
return $this->service->ajaxGetFilesAndFolders($request);
return $this->service()->ajaxGetFilesAndFolders($request);
}

/**
* @param Request $request
*/
public function getDataField($resource, $attribute, NovaRequest $request)
{
return $this->service->ajaxGetFilesAndFolders($request);
return $this->service()->ajaxGetFilesAndFolders($request);
}

/**
* @param Request $request
*/
public function createFolder(Request $request)
{
return $this->service->createFolderOnPath($request->folder, $request->current);
return $this->service()->createFolderOnPath($request->folder, $request->current);
}

/**
* @param Request $request
*/
public function deleteFolder(Request $request)
{
return $this->service->deleteDirectory($request->current);
return $this->service()->deleteDirectory($request->current);
}

/**
Expand All @@ -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,
Expand All @@ -75,55 +70,55 @@ 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);
}

/**
* @param Request $request
*/
public function getInfo(Request $request)
{
return $this->service->getFileInfo($request->file);
return $this->service()->getFileInfo($request->file);
}

/**
* @param Request $request
*/
public function removeFile(Request $request)
{
return $this->service->removeFile($request->file, $request->type);
return $this->service()->removeFile($request->file, $request->type);
}

/**
* @param Request $request
*/
public function renameFile(Request $request)
{
return $this->service->renameFile($request->file, $request->name);
return $this->service()->renameFile($request->file, $request->name);
}

/**
* @param Request $request
*/
public function downloadFile(Request $request)
{
return $this->service->downloadFile($request->file);
return $this->service()->downloadFile($request->file);
}

/**
* @param Request $request
*/
public function rename(Request $request)
{
return $this->service->renameFile($request->path, $request->name);
return $this->service()->renameFile($request->path, $request->name);
}

/**
* @param Request $request
*/
public function folderUploadedEvent(Request $request)
{
return $this->service->folderUploadedEvent($request->path);
return $this->service()->folderUploadedEvent($request->path);
}

/**
Expand Down
12 changes: 6 additions & 6 deletions src/Http/Services/GetFiles.php
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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,
];
Expand Down Expand Up @@ -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'];
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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,
Expand Down
9 changes: 5 additions & 4 deletions src/Http/Services/NormalizeFile.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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(),
]);
Expand All @@ -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);
}

Expand Down Expand Up @@ -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();
Expand Down
18 changes: 18 additions & 0 deletions src/Traits/StorageHelpers.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?php


namespace Infinety\Filemanager\Traits;

use Illuminate\Filesystem\FilesystemAdapter;
use League\Flysystem\AwsS3v3\AwsS3Adapter;

trait StorageHelpers
{
public function url(FilesystemAdapter $fs, $path, $expiration = "+ 1 hour", $options=[]){
$adapter = $fs->getDriver()->getAdapter();
if ($adapter instanceof AwsS3Adapter){
return $fs->getAwsTemporaryUrl($adapter, $path, $expiration, $options);
}
return $fs->url($path);
}
}