Пример #1
0
 public static function getFileInfo($fileID, $checkPermissions = true, $options = null)
 {
     if (!Loader::includeModule('disk')) {
         return null;
     }
     $fileID = (int) $fileID;
     if ($fileID <= 0) {
         return null;
     }
     /** @var File $file */
     $file = File::loadById($fileID);
     if (!$file) {
         return null;
     }
     if (!is_array($options)) {
         $options = array();
     }
     $ownerID = isset($options['OWNER_ID']) ? $options['OWNER_ID'] : 0;
     $ownerTypeID = isset($options['OWNER_TYPE_ID']) ? $options['OWNER_TYPE_ID'] : \CCrmOwnerType::Undefined;
     $canRead = true;
     $viewUrl = '';
     if ($ownerID > 0 && \CCrmOwnerType::isDefined($ownerTypeID)) {
         $viewUrlParams = array('fileId' => $fileID, 'ownerTypeId' => $ownerTypeID, 'ownerId' => $ownerID);
         if (isset($options['VIEW_PARAMS']) && is_array($options['VIEW_PARAMS'])) {
             $viewUrlParams = array_merge($viewUrlParams, $options['VIEW_PARAMS']);
         }
         $viewUrl = \CHTTP::urlAddParams('/bitrix/tools/crm_show_file.php', $viewUrlParams);
         if (isset($options['USE_ABSOLUTE_PATH']) && $options['USE_ABSOLUTE_PATH']) {
             $viewUrl = \CCrmUrlUtil::ToAbsoluteUrl($viewUrl);
         }
     } elseif ($checkPermissions) {
         $canRead = $file->canRead($file->getStorage()->getSecurityContext(\CCrmSecurityHelper::getCurrentUserID()));
         if ($canRead) {
             $viewUrl = Driver::getInstance()->getUrlManager()->getUrlForDownloadFile($file);
         }
     }
     return array('ID' => $fileID, 'NAME' => $file->getName(), 'SIZE' => \CFile::FormatSize($file->getSize()), 'CAN_READ' => $canRead, 'VIEW_URL' => $viewUrl);
 }