folder_repository = $folder_repository; } /** * @param UploadedFile $file * @param $folder_name * @return File */ public function build(UploadedFile $file, $folder_name){ $attachment = new File(); $local_path = Storage::putFileAs(sprintf('/public/%s', $folder_name), $file, $file->getClientOriginalName()); $folder = $this->folder_repository->getFolderByName($folder_name); $attachment->setParent($folder); $attachment->setName($file->getClientOriginalName()); $attachment->setFilename(sprintf("assets/%s/%s",$folder_name, $file->getClientOriginalName())); $attachment->setTitle(str_replace(array('-','_'),' ', preg_replace('/\.[^.]+$/', '', $file->getClientOriginalName()))); $attachment->setShowInSearch(true); Event::fire(new FileCreated($local_path, $file->getClientOriginalName(), $folder_name)); return $attachment; } }