# File upload handler `App\Core\Form\FileUploadHandler` is a service and helps you to upload a file. See example below. ```php-inline use App\Core\Form\FileUploadHandler; use App\Entity\Foo; use App\Form\FooType; use Symfony\Component\HttpFoundation\Request; public function upload(Request $request, FileUploadHandler $fileUpload) { $entity = new Foo(); $form = $this->createForm(FooType::class, $foo); if ($request->isMethod('POST')) { $form->handleRequest($request); if ($form->isValid()) { $fileDirectory = 'uploads/'; $keepOriginalFilename = false; $fileUpload->handleForm( uploadedFile: $form->get('image')->getData(), // Symfony\Component\HttpFoundation\File\UploadedFile or null path: $fileDirectory, // optional afterUploadCallback: function ($filename) use ($entity, $fileDirectory) { $entity->setImage($fileDirectory.$filename); }, // optional keepOriginalFilename: $keepOriginalFilename ); // ... } } } ``` If you need to generate custom filenames, `FileUploadHandler` allows you to define a generator: ``` use Symfony\Component\HttpFoundation\File\UploadedFile; $fileUpload->setFilenameGenerator(function(UploadedFile $file) { return sprintf('%d.%s', mt_rand(), $file->guessExtension()); }); ```