Пример #1
0
 /**
  * Sync a file.
  *
  * @param File          $resource
  * @param DiskInterface $disk
  * @return null|FileInterface
  */
 public function sync(File $resource, DiskInterface $disk)
 {
     $folder = $this->syncFolder($resource, $disk);
     if (!($file = $this->files->findByName(basename($resource->getPath()), $disk, $folder))) {
         $file = $this->files->create(['name' => basename($resource->getPath()), 'folder_id' => $folder ? $folder->getId() : null, 'disk_id' => $disk->getId(), 'size' => $resource->getSize(), 'mime_type' => $resource->getMimetype(), 'extension' => pathinfo($resource->getPath(), PATHINFO_EXTENSION)]);
     }
     return $file;
 }
Пример #2
0
 /**
  * Locate a file by disk and path.
  *
  * @param $disk
  * @param $path
  * @return FileInterface|null
  */
 public function locate($disk, $path)
 {
     if (!($disk = $this->disks->findBySlug($disk))) {
         return null;
     }
     $folder = dirname($path) !== '.' ? $this->folders->findByPath(dirname($path), $disk) : null;
     if (!($file = $this->files->findByName(basename($path), $disk, $folder))) {
         return null;
     }
     return $file;
 }
Пример #3
0
 /**
  * Return the details of a file or folder.
  *
  * @param $disk
  * @param $path
  * @return string
  */
 public function view($disk, $path)
 {
     $disk = $this->disks->findBySlug($disk);
     $folder = $this->folders->findByPath(dirname($path), $disk);
     $file = $this->files->findByName(basename($path), $disk, $folder);
     if (!$disk || !$folder && !$file) {
         abort(404);
     }
     if ($file) {
         return json_encode($file);
     }
     if ($folder) {
         return json_encode($folder);
     }
 }