...Человеческий поиск в разработке...
- Модуль: ui
- Путь к файлу: ~/bitrix/modules/ui/lib/FileUploader/Chunk.php
- Класс: BitrixUIFileUploaderChunk
- Вызов: Chunk::validate
public function validate(Configuration $config): Result { $result = new Result(); if (in_array(mb_strtolower($this->getName()), $config->getIgnoredFileNames())) { return $result->addError(new UploaderError(UploaderError::FILE_NAME_NOT_ALLOWED)); } if ($config->getMaxFileSize() !== null && $this->getFileSize() > $config->getMaxFileSize()) { return $result->addError( new UploaderError( UploaderError::MAX_FILE_SIZE_EXCEEDED, [ 'maxFileSize' => CFile::formatSize($config->getMaxFileSize()), 'maxFileSizeInBytes' => $config->getMaxFileSize(), ] ) ); } if ($this->getFileSize() < $config->getMinFileSize()) { return $result->addError( new UploaderError( UploaderError::MIN_FILE_SIZE_EXCEEDED, [ 'minFileSize' => CFile::formatSize($config->getMinFileSize()), 'minFileSizeInBytes' => $config->getMinFileSize(), ] ) ); } if (!$this->validateFileType($config->getAcceptedFileTypes())) { return $result->addError(new UploaderError(UploaderError::FILE_TYPE_NOT_ALLOWED)); } $width = 0; $height = 0; if (CFile::isImage($this->getName(), $this->getType())) { $image = new FileImage($this->getFile()->getPhysicalPath()); $imageInfo = $image->getInfo(false); if (!$imageInfo) { if ($config->getIgnoreUnknownImageTypes()) { $result->setData(['width' => $width, 'height' => $height]); return $result; } else { return $result->addError(new UploaderError(UploaderError::IMAGE_TYPE_NOT_SUPPORTED)); } } $width = $imageInfo->getWidth(); $height = $imageInfo->getHeight(); if ($imageInfo->getFormat() === FileImage::FORMAT_JPEG) { $exifData = $image->getExifData(); if (isset($exifData['Orientation']) && $exifData['Orientation'] >= 5 && $exifData['Orientation'] <= 8) { [$width, $height] = [$height, $width]; } } if (!$config->shouldTreatOversizeImageAsFile()) { $imageData = new FileData($this->getName(), $this->getType(), $this->getSize()); $imageData->setWidth($width); $imageData->setHeight($height); $validationResult = $config->validateImage($imageData); if (!$validationResult->isSuccess()) { return $result->addErrors($validationResult->getErrors()); } } } $result->setData(['width' => $width, 'height' => $height]); return $result; }