Работа с файлами модуля Диск. Получаем ссылку на диск, публичную ссылку в Битрикс24
2468
Для начала подключим модуль диска:
\Bitrix\Main\Loader::includeModule('disk');
Рассмотрим пример получения файла из описания(текста), элемента:
//получим ID файлов из Текста сущности
if (preg_match_all('|\[DISK\sFILE\sID=([n]*\d+)\]|', $arPost["DETAIL_TEXT"], $matches)) { foreach($matches[1] as $inlineFileId) { //получаем ID файла, для последующего поиска на диске list($type, $realValue) = \Bitrix\Disk\Uf\FileUserType::detectType($inlineFileId);
//если файл найден if($file) {
//получим публичную ссылку $extLink = $file->getExternalLinks()[0];
//если у файла нет публичной ссылки, с генерируем ее: if (empty($extLink)) $extLink = $file->addExternalLink(array( 'CREATED_BY' => $createdBy, 'TYPE' => $type ));
//получим хэш публичной ссылки, для построения URL $hash = $extLink->getHash();
//в переменной $link полученная публичная ссылка на файл
$link = "/docs/pub/" . $hash . "/default/"; } } }
Рассмотрим пример получения ссылки на файл модуля Диск:
$realValue // полученный ранее ID файла
$file = \Bitrix\Disk\File::loadById($realValue); // получим объект файла
$name = $file->getName(); // получим имя файла
$info = $file->getFile(); // получим информацию о файле
$link = \Bitrix\Disk\Driver::getInstance()->getUrlManager()->getUrlForShowFile($file); // получим ссылку на файл в Диске