Имеется форма с полем выбора файлов:
<input type="file" data-not-required name="file" multiple title="Изображения">
Отправляются 2 файла (изображения jpg,png) методом POST асинхронно ( enctype=multipart/form-data):
\CModule::IncludeModule("iblock");
$el = new \CIBlockElement;
if ($review_id = $el->Add( [
'IBLOCK_SECTION_ID' => false,
'IBLOCK_ID' => IBLOCK_content_reviews,
'PROPERTY_VALUES' => [
"PICTURES" => $FILES['file'],
],
'NAME' => 'test',
'ACTIVE' => 'N',
]))
\AddMessage2Log(print_r($FILES['file'], true));
1С-Bitrix принимает и сохраняет в свойство только один из файлов (в var_dump аналогично присутствует только 1 элемент массива, причем в качестве значений name, size и т.п. не образуются массивы как для нескольких файлов):
Date: 2021-04-07 15:21:46
Module:
Array
(
[name] => Screenshot_1.png
[type] => image/png
[tmp_name] => /tmp/phpy1UseU
[error] => 0
[size] => 349258
)
array(5) {
["name"]=>
string(27) "Без названия.png"
["type"]=>
string(9) "image/png"
["tmp_name"]=>
string(14) "/tmp/phpvX9khO"
["error"]=>
int(0)
["size"]=>
int(7308)
}
Каким образом можно отловить оба файла и заставить 1С-Bitrix записать их в множественное свойство типа файл?
UPD: по поводу name="file[]" битрикс ($el->LAST_ERROR) возвращает "Неверный тип файла" для любого разрешенного в свойстве типа (он не умеет работать с массивами?):
Хотя типы файла явно определены для свойства:
Если отключить валидацию типов файлов свойство не заполняется вообще (ни одного файла не прикрепляется). Понимаю, что вопрос скорее к поддержке битрикса на корректировку ядра / модуля загрузки файлов, но возможно существуют какие-либо более быстрые решения на модификацию данных валидных для битрикса?