CAdvBanner::CheckFile: Bitrix method

      
<?php 
//  CAdvBanner :: CheckFile()
//  /dist/bitrix/modules/advertising/classes/general/advertising.php:1858

    
public static function CheckFile($arFile$iMaxSize=0$iMaxWidth=0$iMaxHeight=0$access_typies=array(), $bForceMD5=false$bSkipExt=false)
    {
        if (
$arFile["name"] == "")
        {
            return 
"";
        }

        if (
preg_match("#^php://filter#i"$arFile["tmp_name"]))
        {
            return 
GetMessage("FILE_BAD_FILE_TYPE").".<br>";
        }

        
$extension GetFileExtension(strtolower($arFile["name"]));
        switch (
$extension)
        {
            case 
"jpg": case "jpeg": case "gif": case "bmp": case "png":    $file_type "IMAGE"; break;
            case 
"swf":    $file_type "FLASH"; break;
            case 
"mp4": case "webm": case "ogg"$file_type "VIDEO"; break;
            default: 
$file_type "UNKNOWN";
        }

        
// IMAGE by default
        
$flashEnabled false;
        if(!
in_array($file_type$access_typies))
        {
            
$file_type "IMAGE";
        }

        if (
$file_type == "FLASH")
        {
            
$flashEnabled true;
            static 
$flashMime = array("application/x-shockwave-flash""application/vnd.adobe.flash.movie");
            
$res CFile::CheckFile($arFile$iMaxSize$flashMimeCFile::GetFlashExtensions(), $bForceMD5$bSkipExt);
        }
        else if (
$file_type == "VIDEO")
        {
            
$res CFile::CheckFile($arFile$iMaxSize"video/""mp4,webm,ogg"$bForceMD5$bSkipExt);
        }
        else
        {
            
$res CFile::CheckFile($arFile$iMaxSize"image/"CFile::GetImageExtensions(), $bForceMD5$bSkipExt);
        }

        if(
$res <> '')
        {
            return 
$res;
        }

        if (
$file_type == 'IMAGE' || $file_type == "FLASH")
        {
            
$imgArray CFile::GetImageSize($arFile["tmp_name"], true$flashEnabled);
            if(
is_array($imgArray))
            {
                
$intWIDTH $imgArray[0];
                
$intHEIGHT $imgArray[1];
            }
            else
            {
                return 
GetMessage("FILE_BAD_FILE_TYPE").".<br>";
            }
            
//check for dimensions
            
if($iMaxWidth && ($intWIDTH $iMaxWidth || $intWIDTH == 0) || $iMaxHeight && ($intHEIGHT $iMaxHeight || $intHEIGHT == 0))
            {
                return 
GetMessage("FILE_BAD_MAX_RESOLUTION")." (".$iMaxWidth." * ".$iMaxHeight." ".GetMessage("main_include_dots").").<br>";
            }
        }

        return 
null;
    }