- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/integration/bizproc/file.php
- Класс: BitrixDiskIntegrationBizprocFile
- Вызов: File::uploadUserFile
static function uploadUserFile(BitrixBizprocFile $file, int $userId): Result
{
if ($userId <= 0)
{
return Result::createFromErrorCode(Error::USER_NOT_FOUND);
}
$storage = Driver::getInstance()->getStorageByUserId($userId);
if (!$storage)
{
return Result::createFromErrorCode(Error::OBTAINING_STORAGE);
}
$folder = $storage->getFolderForUploadedFiles();
if (!$folder)
{
return Result::createFromErrorCode(Error::FOLDER_ERROR);
}
$securityContext = $storage->getSecurityContext($userId);
if (!$folder->canAdd($securityContext))
{
return Result::createFromErrorCode(Error::ACCESS_DENIED);
}
$diskFile = $folder->uploadFile($file->getFileArray(), ['CREATED_BY' => $userId], [], true);
if (!$diskFile)
{
$error = $folder->getErrors()[0];
return Result::createFromErrorCode(Error::FILE_NOT_ADDED, ['reason' => $error->getMessage()]);
}
return Result::createOk([
'file' => new static($diskFile),
'diskFile' => $diskFile,
'attachmentId' => FileUserType::NEW_FILE_PREFIX . $diskFile->getId(),
]);
}