/**
  * Add media to media collection from a given file.
  *
  * @param string $file
  * @param string $collectionName
  * @param bool   $removeOriginal
  * @param bool   $addAsTemporary
  *
  * @return Media
  *
  * @throws \Spatie\MediaLibrary\Exceptions\FileDoesNotExist
  * @throws \Spatie\MediaLibrary\Exceptions\FileTooBig
  */
 public function addMedia($file, $collectionName = 'default', $removeOriginal = true, $addAsTemporary = false)
 {
     if (!is_file($file)) {
         throw new FileDoesNotExist();
     }
     if (filesize($file) > config('laravel-medialibrary.max_file_size')) {
         throw new FileTooBig();
     }
     $media = new Media();
     $media->name = pathinfo($file, PATHINFO_FILENAME);
     $media->file_name = pathinfo($file, PATHINFO_BASENAME);
     $media->collection_name = $collectionName;
     $media->size = filesize($file);
     $media->temp = $addAsTemporary;
     $media->manipulations = [];
     $media->save();
     $this->media()->save($media);
     app(Filesystem::class)->add($file, $media);
     if ($removeOriginal) {
         unlink($file);
     }
     return $media;
 }
 public function toCollectionOnDisk($collectionName = 'default', $diskName = '')
 {
     if (!is_file($this->pathToFile)) {
         throw new FileDoesNotExist();
     }
     if (filesize($this->pathToFile) > config('laravel-medialibrary.max_file_size')) {
         throw new FileTooBig();
     }
     $media = new Media();
     $media->name = $this->mediaName;
     $media->file_name = $this->fileName;
     $media->disk = $this->determineDiskName($diskName);
     $media->collection_name = $collectionName;
     $media->size = filesize($this->pathToFile);
     $media->custom_properties = $this->customProperties;
     $media->manipulations = [];
     $media->save();
     $this->subject->media()->save($media);
     $this->fileSystem->add($this->pathToFile, $media, $this->fileName);
     if (!$this->preserveOriginal) {
         unlink($this->pathToFile);
     }
     return $media;
 }