Facebook
From ml, 3 Years ago, written in PHP.
Embed
Download Paste or View Raw
Hits: 167
  1. <?php
  2. // src/Service/FileUploader.php
  3. namespace App\Service;
  4.  
  5. use Symfony\Component\HttpFoundation\File\Exception\FileException;
  6. use Symfony\Component\HttpFoundation\File\UploadedFile;
  7. use Symfony\Component\String\Slugger\SluggerInterface;
  8.  
  9. class FileUploader
  10. {
  11.     private $targetDirectory;
  12.     private $slugger;
  13.  
  14.     public function __construct($targetDirectory, SluggerInterface $slugger)
  15.     {
  16.         $this->targetDirectory = $targetDirectory;
  17.         $this->slugger = $slugger;
  18.     }
  19.  
  20.     public function upload(UploadedFile $file)
  21.     {
  22.         $originalFilename = pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME);
  23.         $safeFilename = $this->slugger->slug($originalFilename);
  24.         $fileName = $safeFilename.'-'.uniqid().'.'.$file->guessExtension();
  25.  
  26.         try {
  27.             $file->move($this->getTargetDirectory(), $fileName);
  28.         } catch (FileException $e) {
  29.             // ... handle exception if something happens during file upload
  30.         }
  31.  
  32.         return $fileName;
  33.     }
  34.  
  35.     public function getTargetDirectory()
  36.     {
  37.         return $this->targetDirectory;
  38.     }
  39. }