Example #1
0
 /**
  * @param array $fileData
  * @param string $siteID
  * @return array|null
  */
 public static function getFileInfo($fileID, $storageTypeID = 0, $checkPermissions = true, $options = null)
 {
     if (!is_integer($storageTypeID)) {
         $storageTypeID = (int) $storageTypeID;
     }
     if (!StorageType::isDefined($storageTypeID)) {
         $storageTypeID = StorageType::getDefaultTypeID();
     }
     if ($storageTypeID === StorageType::Disk) {
         return DiskManager::getFileInfo($fileID, $checkPermissions, $options);
     } elseif ($storageTypeID === StorageType::WebDav) {
         return \CCrmWebDavHelper::getElementInfo($fileID, $checkPermissions);
     } elseif ($storageTypeID === StorageType::File) {
         $fileInfo = \CFile::GetFileArray($fileID);
         if (!is_array($fileInfo)) {
             return null;
         }
         return array('ID' => $fileID, 'NAME' => isset($fileInfo['ORIGINAL_NAME']) ? $fileInfo['ORIGINAL_NAME'] : $fileID, 'SIZE' => \CFile::FormatSize($fileInfo['FILE_SIZE'] ? $fileInfo['FILE_SIZE'] : 0), 'VIEW_URL' => isset($fileInfo['SRC']) ? $fileInfo['SRC'] : '');
     }
     throw new Main\NotSupportedException("Storage type: '{$storageTypeID}' is not supported in current context");
 }