Документация для разработчиков
Темная тема

Добавление картинок в поля лида

Пример размещения на странице сайта формы с возможностью прикрепления файлов. По заполнении формы в Битрикс24 будет создаваться новый лид.
В коде ниже есть пользовательские поля:
UF_CRM_1551350435588 - множественное свойство типа файл;
UF_CRM_1551362436225 - свойство типа файл.

Внимание! Для использования примера настройте работу класса CRest и подключите файл crest.php в файлах, где используется данный класс. Подробнее.

  1. Создаём форму на нужной странице:
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    	<script>
    		$(document).ready(function() {
    			$('#form_to_crm_file').on( 'submit', function(el) {//event submit form
    				el.preventDefault();//the default action of the event will not be triggered
    				var formData = new FormData(this);
    				var xhr = new XMLHttpRequest();
    				xhr.open("POST", 'form.php');
    				xhr.onreadystatechange = function () {
    					if (this.readyState === 4) {
    						if (this.status >= 200 && this.status < 400) {
    							// Success!
    							var resp = this.responseText;
    							try {
    								var json = JSON.parse(resp);
    								if (typeof json.message !== 'undefined') {
    									alert(json.message);
    								}
    
    							} catch (e) {
    								return false;
    							}
    
    						} else {
    							alert('error');
    						}
    					}
    				};
    				xhr.send(formData);
    			});
    		});
    	</script>
    	<form id="form_to_crm_file" method="post" enctype="multipart/form-data">
    		<input type="text" name="NAME" placeholder="Name" required>
    		<input type="text" name="LAST_NAME" placeholder="Last name">
    		<input type="text" name="PHONE" placeholder="Phone">
    		<input type="text" name="EMAIL" placeholder="E-mail">
    		<input type="file" name="FILE" placeholder="File">
    		<input type="file" name="FILES[]" placeholder="Files" multiple="multiple">
    
    		<input type="submit" value="Submit">
    	</form>
    
  2. Создаём файл form.php, для сохранения заполненных форм:
    <?
    	$sName = htmlspecialchars($_POST["NAME"]);	
    	$sLastName = htmlspecialchars($_POST["LAST_NAME"]);
    	$sPhone = htmlspecialchars($_POST["PHONE"]);
    	$sEmail = htmlspecialchars($_POST["EMAIL"]);
    	//UF_CRM_1551350435588 - multiple file field
    	//UF_CRM_1551362436225 - file field
    	$arFiles = [];
    	$arFile = [];
    	//make array multiple files for add to custom field
    	if(!empty($_FILES['FILES']['tmp_name']) && is_array($_FILES['FILES']['tmp_name'])){
    		foreach($_FILES['FILES']['tmp_name'] as $k=>$path){
    			$arFiles[] = [
    				"fileData" => [
    					$_FILES['FILES']['name'][$k],
    					base64_encode(file_get_contents($path))
    				]
    			];
    		}
    	}
    	//make file array for add to custom field
    	if(!empty($_FILES['FILE']['tmp_name'])){
    		$arFile = [
    			"fileData" => [
    				$_FILES['FILE']['name'],
    				base64_encode(file_get_contents($_FILES['FILE']['tmp_name']))
    			]
    		];
    	}
    	//Форматируем Phone и почту для сохранения
    	$arPhone = (!empty($sPhone)) ? array(array('VALUE' => $sPhone, 'VALUE_TYPE' => 'WORK')) : array();
    	$arEmail = (!empty($sEmail)) ? array(array('VALUE' => $sEmail, 'VALUE_TYPE' => 'HOME')) : array();
    
    	$result = CRest::call(
    		'crm.lead.add',
    		[
    		'fields' =>[
    			'TITLE' => 'From the site: '.implode(' ',[$sName,$sLastName]),//*Lead Name[string]
    			'NAME' => $sName,//Name[string]
    			'UF_CRM_1551350435588' => $arFiles,
    			'UF_CRM_1551362436225' => $arFile,
    			'LAST_NAME' => $sLastName,//Last name[string]
    			'PHONE' => $arPhone,//Phone[string]
    			'EMAIL' => $arEmail,//E-mail[string]
    		]
    	]);
    	if(!empty($result['result'])){
    		echo json_encode(['message' => 'Lead add']);
    	}elseif(!empty($result['error_description'])){
    		echo json_encode(['message' => 'Lead not added: '.$result['error_description']]);
    	}else{
    		echo json_encode(['message' => 'Lead not added']);
    	}
    ?>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх