Если стоит задача прикрепления не одного, а нескольких файлов, то подойдет такой пример:
$oTask = CTaskItem::add($arNewTaskData, $responsible);
| Код |
|---|
//Текущая задача
$cur_task = $oTask->getData();
//Определеяем класс для работы с Bitrix диском
$USER_ID = $USER->GetID();
$storage = Bitrix\Disk\Driver::getInstance()->getStorageByUserId($USER_ID);
$folder = $storage->getFolderForUploadedFiles();
//Массив с файлами
$newFiles = array();
//копируем файлы в Bitrix диск
foreach($linked_files_array as $k=>$val){
$arFile = CFile::MakeFileArray($val);
$file = $folder->uploadFile($arFile, array(
'NAME' => $arFile["name"],
'CREATED_BY' => $USER_ID
), array(), true);
//Добавляем id файлов в массив с префиксом n
$newFiles[] = "n".$file->getId();
}
//Прикрепляем файлы к задаче
if(!empty($newFiles)){
$oTaskItem = new CTaskItem($cur_task["ID"], $responsible);
try
{
$rs = $oTaskItem->Update(array("UF_TASK_WEBDAV_FILES" => $newFiles));
}
catch(Exception $e)
{
print(GetMessage("TASK_FILES_LINKED_ERROR"));
}
} |