• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/folder.php
  • Класс: Bitrix\Disk\Folder
  • Вызов: Folder::uploadFile
public function uploadFile(array $fileArray, array $data, array $rights = array(), $generateUniqueName = false)
{
	$this->errorCollection->clear();

	$data['NAME'] = $this->resolveFileName($fileArray, $data);

	static::checkRequiredInputParams($data, array(
		'NAME', 'CREATED_BY'
	));

	if(!isset($fileArray['MODULE_ID']))
	{
		$fileArray['MODULE_ID'] = Driver::INTERNAL_MODULE_ID;
	}

	if(empty($fileArray['type']))
	{
		$fileArray['type'] = '';
	}

	$fileArray['type'] = TypeFile::normalizeMimeType($fileArray['type'], $data['NAME']);


	$fileId = CFile::saveFile($fileArray, Driver::INTERNAL_MODULE_ID, true, true);
	if(!$fileId)
	{
		$this->errorCollection->add(array(new Error(Loc::getMessage("DISK_FOLDER_MODEL_ERROR_COULD_NOT_SAVE_FILE"), self::ERROR_COULD_NOT_SAVE_FILE)));
		return null;
	}
	/** @var array $fileArray */

	$fileArray = CFile::getFileArray($fileId);

	$data['NAME'] = Ui\Text::correctFilename($data['NAME']);
	$fileModel = $this->addFile(array(
		'NAME' => $data['NAME'],
		'FILE_ID' => $fileId,
		'PREVIEW_ID' => isset($data['PREVIEW_ID'])? $data['PREVIEW_ID'] : null,
		'CONTENT_PROVIDER' => isset($data['CONTENT_PROVIDER'])? $data['CONTENT_PROVIDER'] : null,
		'SIZE' => !isset($data['SIZE'])? $fileArray['FILE_SIZE'] : $data['SIZE'],
		'CREATED_BY' => $data['CREATED_BY'],
		'UPDATE_TIME' => isset($data['UPDATE_TIME'])? $data['UPDATE_TIME'] : null,
		'CODE' => isset($data['CODE'])? $data['CODE'] : null,
	), $rights, $generateUniqueName);

	if(!$fileModel)
	{
		CFile::delete($fileId);
		return null;
	}
	return $fileModel;
}