• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/lib/basetype/file.php
  • Класс: BitrixBizprocBaseTypeFile
  • Вызов: File::extractValue
static function extractValue(FieldType $fieldType, array $field, array $request)
{
	$value = parent::extractValue($fieldType, $field, $request);

	if (is_array($value) && !empty($value['name']) && !empty($value['tmp_name']))
	{
		if (!is_uploaded_file($value['tmp_name']))
		{
			$value = null;
			static::addError([
				'code'      => 'ErrorValue',
				'message'   => Loc::getMessage('BPDT_FILE_SECURITY_ERROR'),
				'parameter' => static::generateControlName($field),
			]);
		}
		else
		{
			if (!array_key_exists('MODULE_ID', $value) || $value['MODULE_ID'] == '')
				$value['MODULE_ID'] = 'bizproc';

			$value = CFile::saveFile($value, 'bizproc_wf');
			if (!$value)
			{
				$value = null;
				static::addError([
					'code'      => 'ErrorValue',
					'message'   => Loc::getMessage('BPDT_FILE_INVALID'),
					'parameter' => static::generateControlName($field),
				]);
			}
		}
	}
	elseif (CBPActivity::isExpression($value))
	{
		//It`s OK
	}
	elseif (is_numeric($value) && defined('BX_MOBILE'))
	{
		$file = CFile::getById($value)->fetch();
		if (!$file || $file['MODULE_ID'] !== 'bizproc')
		{
			$value = null;
		}
	}
	else
	{
		$value = null;
	}

	return $value;
}