/** * 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; }