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

Обработка файлов

Методы REST-сервиса получают файлы в виде строки, закодированной в base64. Также можно отправить обычный массив, первым элементом которого будет имя файла, вторым - содержимое в base64.

В случае полностью клиентского приложения можно либо воспользоваться объектом FileReader, либо просто отдать в качестве значения поля запроса ссылку на элемент формы типа "файл" (<input type="file">).

Пример

<input type="file" id="testfile"><br />
<span onclick="sendInputFile()">send file from inputsend static file
function sendInputFile()
{
	BX24.callMethod('entity.item.add', {
		'ENTITY': 'menu',
		'NAME': Math.random(),
		'DETAIL_PICTURE': document.getElementById('testfile')
	}, function(){
		alert('Finished!');
	});
}
/*
POST https://my.bitrix24.com/rest/entity.item.add.json HTTP/1.1
Host: my.bitrix24.com
Content-Length: 186
Content-Type: text/plain; charset=UTF-8
auth=6a8c365cb010ba42bd5b0f6ae803f47c&ENTITY=menu&NAME=0.2630483947652045&DETAIL_PICTURE[0]=1.gif&DETAIL_PICTURE[1]=R0lGODlhAQABAIAAAP%2F%2F%2FwAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw%3D%3D
*/
function sendStaticFile()
 {
	BX24.callMethod('entity.item.add', {
		'ENTITY': 'menu',
		'NAME': '1.gif',
		'DETAIL_PICTURE': ['1.gif', 'R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==']
	}, function(){
		alert('Finished!');
	 });
 }
/*
POST https://my.bitrix24.com/rest/entity.item.add.json HTTP/1.1
Host: my.bitrix24.com
Content-Length: 173
Content-Type: text/plain; charset=UTF-8
auth=6a8c365cb010ba42bd5b0f6ae803f47c&ENTITY=menu&NAME=1.gif&DETAIL_PICTURE[0]=1.gif&DETAIL_PICTURE[1]=R0lGODlhAQABAIAAAP%2F%2F%2FwAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw%3D%3D
*/
</script>

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

'DETAIL_PICTURE': ['1.gif', 'R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==']

используйте

"PREVIEW_PICTURE": {"fileData": ["1.gif", "R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="]}

Такая особенность вызвана тем, что в CRM поддерживается удаление файлов.

Для удаления картинки из поля, нужно вначале получить ID файла картинки в поле PHOTO методом crm.contact.get и после передать его с параметром remove в метод crm.contact.update, как пример, в контакте 308 удаляем фото ID 11062 (REGISTER_SONET_EVENT можно не передавать):

BX24.callMethod(
	"crm.contact.update", 
	{ 
		id: 308,
		fields:
		{ 
			"PHOTO": {id: 11062, remove: 'Y'}
		},
		params: { "REGISTER_SONET_EVENT": "Y" }         
	}, 
	function(result) 
	{
		if(result.error())
			console.error(result.error());
		else
		{
			console.info(result.data());                  
		}
	}
); 


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

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

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

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

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