• Модуль: documentgenerator
  • Путь к файлу: ~/bitrix/modules/documentgenerator/lib/controller/file.php
  • Класс: BitrixDocumentGeneratorControllerFile
  • Вызов: File::uploadDocxFile
public function uploadDocxFile($hash, &$file, &$package, &$upload, &$error)
{
	Loc::loadMessages(__FILE__);
	$maxSize = Bitrix24Manager::getMaximumTemplateFileSize();
	if($file['size'] > $maxSize)
	{
		$error = Loc::getMessage('DOCGEN_CONT_FILE_UPLOAD_WRONG_SIZE_BIG', ['#SIZE#' => ($maxSize / 1024).'Kb']);
		return false;
	}
	$file['files']['default']['isTemplate'] = true;
	$uploadResult = FileTable::saveFile($file['files']['default']);
	if($uploadResult->isSuccess())
	{
		$fileId = $uploadResult->getId();
		if(BitrixMainIOFile::isFileExists($file['files']['default']['tmp_name']))
		{
			$body = new Docx(BitrixMainIOFile::getFileContents($file['files']['default']['tmp_name']));
		}
		else
		{
			$body = new Docx(FileTable::getContent($fileId));
		}
		if(!$body->isFileProcessable())
		{
			$error = Loc::getMessage('DOCGEN_CONT_FILE_UPLOAD_CORRUPTED_FILE');
			FileTable::delete($fileId);
			return false;
		}
		$file['FILE_ID'] = $fileId;
		$file['name'] = GetFileNameWithoutExtension($file['name']);
		return true;
	}
	else
	{
		$error = implode(' ,', $uploadResult->getErrorMessages());
		return false;
	}
}