1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Downloadable\Model\File;
- use Magento\Downloadable\Api\Data\File\ContentInterface;
- use Magento\Framework\Exception\InputException;
- class ContentValidator
- {
- /**
- * Check if gallery entry content is valid
- *
- * @param ContentInterface $fileContent
- * @throws InputException
- * @return bool
- */
- public function isValid(ContentInterface $fileContent)
- {
- $decodedContent = @base64_decode($fileContent->getFileData(), true);
- if (empty($decodedContent)) {
- throw new InputException(__('Provided content must be valid base64 encoded data.'));
- }
- if (!$this->isFileNameValid($fileContent->getName())) {
- throw new InputException(__('Provided file name contains forbidden characters.'));
- }
- return true;
- }
- /**
- * Check if given filename is valid
- *
- * @param string $fileName
- * @return bool
- */
- protected function isFileNameValid($fileName)
- {
- // Cannot contain \ / : * ? " < > |
- if (!preg_match('/^[^\\/?*:";<>()|{}\\\\]+$/', $fileName)) {
- return false;
- }
- return true;
- }
- }
|