- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/classes/general/im_disk.php
- Класс: CIMDisk
- Вызов: CIMDisk::UploadFileFromMain
static function UploadFileFromMain($chatId, $files)
{
if ((int)$chatId <= 0 || empty($files))
{
return false;
}
$chatRelation = CIMChat::GetRelationById($chatId, false, true, false);
if (!$chatRelation)
{
return false;
}
$folderModel = self::GetFolderModel($chatId);
if (!$folderModel)
{
return false;
}
$messageFileId = [];
foreach ($files as $fileId)
{
$res = CFile::GetByID($fileId);
$file = $res->Fetch();
if (!$file)
{
continue;
}
if (empty($file['ORIGINAL_NAME']))
{
$fileName = $file['FILE_NAME'];
}
else
{
$fileName = $file['ORIGINAL_NAME'];
}
$fileName = BitrixDiskUiText::correctFilename($fileName);
$newFile = $folderModel->addFile(array(
'NAME' => $fileName,
'FILE_ID' => $fileId,
'SIZE' => $file['FILE_SIZE'],
'CREATED_BY' => BitrixDiskSystemUser::SYSTEM_USER_ID,
), Array(), true);
if ($newFile)
{
$newFile->increaseGlobalContentVersion();
$messageFileId[] = $newFile->getId();
}
}
return !empty($messageFileId) ? $messageFileId : false;
}