murph-skeleton/core/Form/FileUploadHandler.php

36 lines
1 KiB
PHP
Raw Normal View History

2021-03-24 12:27:07 +01:00
<?php
namespace App\Core\Form;
use Symfony\Component\HttpFoundation\File\UploadedFile;
/**
* class FileUploadHandler.
*
* @author Simon Vieille <simon@deblan.fr>
*/
class FileUploadHandler
{
2021-06-15 11:31:52 +02:00
public function handleForm(?UploadedFile $uploadedFile, string $path, ?callable $afterUploadCallback = null, bool $keepOriginalFilename = false): void
2021-03-24 12:27:07 +01:00
{
if (null === $uploadedFile) {
return;
}
$originalFilename = pathinfo($uploadedFile->getClientOriginalName(), PATHINFO_FILENAME);
2021-06-15 11:31:52 +02:00
if ($keepOriginalFilename) {
$filename = $originalFilename.'.'.$uploadedFile->guessExtension();
} else {
$safeFilename = transliterator_transliterate('Any-Latin; Latin-ASCII; [^A-Za-z0-9_] remove; Lower()', $originalFilename);
$filename = date('Ymd-his').$safeFilename.'.'.$uploadedFile->guessExtension();
}
2021-03-24 12:27:07 +01:00
$uploadedFile->move($path, $filename);
2021-06-15 11:31:52 +02:00
if ($afterUploadCallback) {
$afterUploadCallback($filename);
}
2021-03-24 12:27:07 +01:00
}
}