+7 (987) 026-06-36
Написать в Telegram

Оставить заявку
stanislav_web

Как в bitrix:form реализовать множественную загрузку файлов

Как в bitrix:form реализовать множественную загрузку файлов Объясняю и показываю примеры решений разных задач с которыми сталкивался и сталкиваюсь в процессе работы

Как в bitrix:form реализовать множественную загрузку файлов

Объясняю и показываю примеры решений разных задач с которыми сталкивался и сталкиваюсь в процессе работы

📅 08 октября 2024

👁‍🗨 437

🔥 0

Как в bitrix:form реализовать множественную загрузку файлов
<? // /local/templates/s1/components/bitrix/form/guarantee/bitrix/form.result.new/.default/template.php ?>
<input type="file" multiple accept="image/*" name="files[]">

<? // /local/php_interface/init.php
AddEventHandler('form', 'onBeforeResultAdd', 'guaranteeFormAdd');
function guaranteeFormAdd($WEB_FORM_ID, &$arFields, &$arrVALUES) {
  global $_FILES;
  if ($WEB_FORM_ID == 2) { // ID веб-формы
    if ($_FILES['files']) {
      $files = [];
      if (is_array($_FILES['files']['name'])) {
        foreach ($_FILES['files'] as $key => $item) {
          foreach ($item as $key2 => $item2) {
            $files[$key2][$key] = $item2;
          }
        }
      }else{
        $files = [$_FILES['files']];
      }
      unset($_FILES['files']);
      $key = 11; // Число с которого начинается ID свойств в настройках вопроса, например form_file_11
      if (count($files) > 1) {
        for ($i = 0; $i < count($files); $i++) { 
          $_FILES['form_file_' . $key++] = $files[$i];
        }
      } else {
        $_FILES['form_file_' . $key] = $files[0];
      }
    }
  }
}
?>