targetDirectory = $targetDirectory; $this->slugger = $slugger; } public function upload(UploadedFile $file) { $originalFilename = pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME); $safeFilename = $this->slugger->slug($originalFilename); $fileName = $safeFilename.'-'.uniqid().'.'.$file->guessExtension(); try { $file->move($this->getTargetDirectory(), $fileName); } catch (FileException $e) { // ... handle exception if something happens during file upload } return $fileName; } public function getTargetDirectory() { return $this->targetDirectory; } }