- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/file.php
- Класс: BitrixDiskFile
- Вызов: File::add
static function add(array $data, ErrorCollection $errorCollection)
{
$parent = null;
if(isset($data['PARENT']) && $data['PARENT'] instanceof Folder)
{
$parent = $data['PARENT'];
unset($data['PARENT']);
}
/** @var File $file */
$file = parent::add($data, $errorCollection);
if($file)
{
if($parent !== null)
{
$file->setAttributes(array('PARENT' => $parent));
}
$versionData = array(
'ID' => $file->getFileId(),
'FILE_SIZE' => $file->getSize(),
);
if(!empty($data['UPDATE_TIME']))
{
$versionData['UPDATE_TIME'] = $data['UPDATE_TIME'];
}
if(!empty($data['ETAG']))
{
$versionData['ETAG'] = $data['ETAG'];
}
$version = $file->addVersion($versionData, $file->getCreatedBy());
if(!$version)
{
$errorCollection->add($file->getErrors());
$file->delete(SystemUser::SYSTEM_USER_ID);
return null;
}
$event = new Event(Driver::INTERNAL_MODULE_ID, "onAfterAddFile", array($file));
$event->send();
}
return $file;
}