]> BookStack Code Mirror - bookstack/blob - app/Services/UploadService.php
Update .env.example
[bookstack] / app / Services / UploadService.php
1 <?php namespace BookStack\Services;
2
3 use Illuminate\Contracts\Filesystem\Factory as FileSystem;
4 use Illuminate\Contracts\Filesystem\Filesystem as FileSystemInstance;
5
6 class UploadService
7 {
8
9     /**
10      * @var FileSystem
11      */
12     protected $fileSystem;
13
14     /**
15      * @var FileSystemInstance
16      */
17     protected $storageInstance;
18
19
20     /**
21      * FileService constructor.
22      * @param $fileSystem
23      */
24     public function __construct(FileSystem $fileSystem)
25     {
26         $this->fileSystem = $fileSystem;
27     }
28
29     /**
30      * Get the storage that will be used for storing images.
31      * @return FileSystemInstance
32      */
33     protected function getStorage()
34     {
35         if ($this->storageInstance !== null) {
36             return $this->storageInstance;
37         }
38
39         $storageType = config('filesystems.default');
40         $this->storageInstance = $this->fileSystem->disk($storageType);
41
42         return $this->storageInstance;
43     }
44
45     /**
46      * Check whether or not a folder is empty.
47      * @param $path
48      * @return bool
49      */
50     protected function isFolderEmpty($path)
51     {
52         $files = $this->getStorage()->files($path);
53         $folders = $this->getStorage()->directories($path);
54         return (count($files) === 0 && count($folders) === 0);
55     }
56
57     /**
58      * Check if using a local filesystem.
59      * @return bool
60      */
61     protected function isLocal()
62     {
63         return strtolower(config('filesystems.default')) === 'local';
64     }
65 }