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