- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/uf/integration/diskuploadercontroller.php
- Класс: BitrixDiskUfIntegrationDiskUploaderController
- Вызов: DiskUploaderController::onUploadComplete
public function onUploadComplete(UploadResult $uploadResult): void
{
$tempFile = $uploadResult->getTempFile();
[$folder, $storage] = $this->getFolderAndStorage($tempFile->getFilename());
if ($folder === null || $storage === null || !$folder->canAdd($storage->getCurrentUserSecurityContext()))
{
$uploadResult->addError(new Error('Access denied'));
return;
}
$tempFile = $uploadResult->getTempFile();
$diskFile = $folder->addFile(
[
'NAME' => Text::correctFilename($tempFile->getFilename()),
'FILE_ID' => $tempFile->getFileId(),
'SIZE' => $tempFile->getSize(),
'CREATED_BY' => $tempFile->getCreatedBy(),
],
[],
true
);
if ($diskFile)
{
$fileInfo = $this->createFileInfo($diskFile);
$uploadResult->setFileInfo($fileInfo);
$tempFile->makePersistent();
}
else
{
if (is_array($folder->getErrors()))
{
$uploadResult->addErrors($folder->getErrors());
}
else
{
$uploadResult->addError(new Error('The file has not been saved'));
}
$tempFile->delete();
}
}