1 <?php namespace BookStack\Services;
3 use Illuminate\Contracts\Filesystem\Factory as FileSystem;
4 use Illuminate\Contracts\Filesystem\Filesystem as FileSystemInstance;
12 protected $fileSystem;
15 * @var FileSystemInstance
17 protected $storageInstance;
21 * FileService constructor.
24 public function __construct(FileSystem $fileSystem)
26 $this->fileSystem = $fileSystem;
30 * Get the storage that will be used for storing images.
31 * @return FileSystemInstance
33 protected function getStorage()
35 if ($this->storageInstance !== null) return $this->storageInstance;
37 $storageType = config('filesystems.default');
38 $this->storageInstance = $this->fileSystem->disk($storageType);
40 return $this->storageInstance;
44 * Check whether or not a folder is empty.
48 protected function isFolderEmpty($path)
50 $files = $this->getStorage()->files($path);
51 $folders = $this->getStorage()->directories($path);
52 return (count($files) === 0 && count($folders) === 0);
56 * Check if using a local filesystem.
59 protected function isLocal()
61 return strtolower(config('filesystems.default')) === 'local';