- Модуль: 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;
}
}