/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/Api/ImageContentValidator.php
94 строки
3 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 17:47
22 окт 2025, 17:47
1b769b7
Код
Авторство
О чём код?
<?php /** * Copyright 2015 Adobe * All Rights Reserved. */ namespace Magento\Framework\Api; use Magento\Framework\Api\Data\ImageContentInterface; use Magento\Framework\Exception\InputException; use Magento\Framework\Phrase; /** * Class for Image content validation */ class ImageContentValidator implements ImageContentValidatorInterface { /** * @var array */ private $defaultMimeTypes = [ 'image/jpg', 'image/jpeg', 'image/gif', 'image/png', ]; /** * @var array */ private $allowedMimeTypes; /** * @param array $allowedMimeTypes */ public function __construct( array $allowedMimeTypes = [] ) { $this->allowedMimeTypes = array_merge($this->defaultMimeTypes, $allowedMimeTypes); } /** * Check if gallery entry content is valid * * @param ImageContentInterface $imageContent * @return bool * @throws InputException */ public function isValid(ImageContentInterface $imageContent) { $fileContent = @base64_decode($imageContent->getBase64EncodedData(), true); if (empty($fileContent)) { throw new InputException(new Phrase('The image content must be valid base64 encoded data.')); } $imageProperties = @getimagesizefromstring($fileContent); if (empty($imageProperties)) { throw new InputException(new Phrase('The image content must be valid base64 encoded data.')); } $sourceMimeType = $imageProperties['mime']; if ($sourceMimeType != $imageContent->getType() || !$this->isMimeTypeValid($sourceMimeType)) { throw new InputException(new Phrase('The image MIME type is not valid or not supported.')); } if (!$this->isNameValid($imageContent->getName())) { throw new InputException(new Phrase('Provided image name contains forbidden characters.')); } return true; } /** * Check if given mime type is valid * * @param string $mimeType * @return bool */ protected function isMimeTypeValid($mimeType) { return in_array($mimeType, $this->allowedMimeTypes); } /** * Check if given filename is valid * * @param string $name * @return bool */ protected function isNameValid($name) { // Cannot contain \ / ? * : " ; < > ( ) | { } if ($name === null || !preg_match('/^[^\\/?*:";<>()|{}\\\\]+$/', $name)) { return false; } return true; } }