64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
|  | <?php namespace BookStack\Services; | ||
|  | 
 | ||
|  | use Illuminate\Contracts\Filesystem\Factory as FileSystem; | ||
|  | use Illuminate\Contracts\Filesystem\Filesystem as FileSystemInstance; | ||
|  | 
 | ||
|  | class UploadService | ||
|  | { | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @var FileSystem | ||
|  |      */ | ||
|  |     protected $fileSystem; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @var FileSystemInstance | ||
|  |      */ | ||
|  |     protected $storageInstance; | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * FileService constructor. | ||
|  |      * @param $fileSystem | ||
|  |      */ | ||
|  |     public function __construct(FileSystem $fileSystem) | ||
|  |     { | ||
|  |         $this->fileSystem = $fileSystem; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Get the storage that will be used for storing images. | ||
|  |      * @return FileSystemInstance | ||
|  |      */ | ||
|  |     protected function getStorage() | ||
|  |     { | ||
|  |         if ($this->storageInstance !== null) return $this->storageInstance; | ||
|  | 
 | ||
|  |         $storageType = config('filesystems.default'); | ||
|  |         $this->storageInstance = $this->fileSystem->disk($storageType); | ||
|  | 
 | ||
|  |         return $this->storageInstance; | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Check whether or not a folder is empty. | ||
|  |      * @param $path | ||
|  |      * @return bool | ||
|  |      */ | ||
|  |     protected function isFolderEmpty($path) | ||
|  |     { | ||
|  |         $files = $this->getStorage()->files($path); | ||
|  |         $folders = $this->getStorage()->directories($path); | ||
|  |         return (count($files) === 0 && count($folders) === 0); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Check if using a local filesystem. | ||
|  |      * @return bool | ||
|  |      */ | ||
|  |     protected function isLocal() | ||
|  |     { | ||
|  |         return strtolower(config('filesystems.default')) === 'local'; | ||
|  |     } | ||
|  | } |