public function __construct(FileUpload $file)
{
if (!$file->isImage()) {
throw new NotImageUploadedException();
}
$this->id = Uuid::uuid4();
$pathInfo = pathinfo($file->getSanitizedName());
if (!isset($pathInfo['extension'])) {
throw new FileNameException('Filename must have extension');
}
$this->extension = $pathInfo['extension'];
$this->originalName = $pathInfo['filename'];
$imgSize = $file->getImageSize();
$this->width = $imgSize[0];
$this->height = $imgSize[1];
$this->fileSize = $file->getSize();
$this->uploadedAt = new \DateTime('now');
}