Laravel SVG validation - JamesDeGreese/Boartech-Comunity GitHub Wiki
/*
* Валидатор запросов в php работает коряво для некоторых svg файлов, по причине отсутствия в них '<?xml' тега.
* Данная функция проверяет и добавляет его в начало файла.
*/
function insertXmlDeclarationToSvgFileIfItMissed()
{
/** @var UploadedFile $file */
$file = $this->file('icon_upload');
if ($file
&& $file->isValid()
&& $file->getClientOriginalExtension() === 'svg'
&& $file->guessExtension() !== 'svg') {
try {
$content = \File::get($file->getRealPath());
if (!str_contains($content, '<?xml')) {
\File::prepend($file->getRealPath(), '<?xml version="1.0" encoding="UTF-8"?>');
}
} catch (\Exception $e) {
}
}
}
`