CCrmRestProxyBase::tryInternalizeProductFileField

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmRestProxyBase
  4. tryInternalizeProductFileField
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/restservice.php
  • Класс: \CCrmRestProxyBase
  • Вызов: CCrmRestProxyBase::tryInternalizeProductFileField
protected function tryInternalizeProductFileField(&$fields, $fieldName)
{
	if(!(isset($fields[$fieldName]) && self::isAssociativeArray($fields[$fieldName])))
		return false;

	$result = array();

	//$fileID = isset($fields[$fieldName]['id']) ? intval($fields[$fieldName]['id']) : 0;
	$removeFile = isset($fields[$fieldName]['remove']) && is_string($fields[$fieldName]['remove'])
		&& mb_strtoupper($fields[$fieldName]['remove']) === 'Y';
	$fileData = $fields[$fieldName]['fileData'] ?? '';

	if(!self::isIndexedArray($fileData))
	{
		$fileName = '';
		$fileContent = $fileData;
	}
	else
	{
		$fileDataLength = count($fileData);

		if($fileDataLength > 1)
		{
			$fileName = $fileData[0];
			$fileContent = $fileData[1];
		}
		elseif($fileDataLength === 1)
		{
			$fileName = '';
			$fileContent = $fileData[0];
		}
		else
		{
			$fileName = '';
			$fileContent = '';
		}
	}

	if(is_string($fileContent) && $fileContent !== '')
	{
		// Add/replace file
		$fileInfo = CRestUtil::saveFile($fileContent, $fileName);
		if(is_array($fileInfo))
		{
			$result = &$fileInfo;
			unset($fileInfo);
		}
	}
	elseif($removeFile)
	{
		// Remove file
		$result = array(
			'del' => 'Y'
		);
	}

	if(!empty($result))
	{
		$fields[$fieldName] = $result;
		return true;
	}

	unset($fields[$fieldName]);
	return false;
}

Добавить комментарий