- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/file.php
- Класс: Bitrix\Disk\File
- Вызов: File::uploadVersion
public function uploadVersion(array $fileArray, $createdBy, array $options = [])
{
$this->errorCollection->clear();
if(!isset($fileArray['MODULE_ID']))
{
$fileArray['MODULE_ID'] = Driver::INTERNAL_MODULE_ID;
}
if(empty($fileArray['type']))
{
$fileArray['type'] = '';
}
$fileArray['type'] = TypeFile::normalizeMimeType($fileArray['type'], $this->name);
$fileId = CFile::saveFile($fileArray, Driver::INTERNAL_MODULE_ID, true, true);
if(!$fileId)
{
$this->errorCollection->add(array(new Error(Loc::getMessage('DISK_FILE_MODEL_ERROR_COULD_NOT_SAVE_FILE'), self::ERROR_COULD_NOT_SAVE_FILE)));
return null;
}
$updateTime = isset($fileArray['UPDATE_TIME'])? $fileArray['UPDATE_TIME'] : null;
/** @var array $fileArray */
$fileArray = CFile::getFileArray($fileId);
if(!$fileArray)
{
CFile::delete($fileId);
$this->errorCollection->add(array(new Error(Loc::getMessage('DISK_FILE_MODEL_ERROR_COULD_NOT_SAVE_FILE'), self::ERROR_COULD_NOT_GET_SAVED_FILE)));
return null;
}
if($updateTime)
{
$fileArray['UPDATE_TIME'] = $updateTime;
}
$version = $this->addVersion($fileArray, $createdBy, false, $options);
if(!$version)
{
CFile::delete($fileId);
}
return $version;
}