Задать вопрос
vsyakiyjr
@vsyakiyjr
Программист

Битрикс. Как загрузить файл и получить его id?

Здравствуйте! Прошу помощи в реализации. В общем есть форма по загрузке изображений, которую я пишу сам, не используя встроенные компоненты. Форма должна грузить в свойство типа "файл" картинку. Как это реализовать в Битрикс? Проблема именно в загрузке и получении id, запись в свойство происходит если написать вручную id уже загруженной картинки.

< form name="iblock_add" id="iblock_add" method="POST" action="<?=POST_FORM_ACTION_URI?>" enctype="multipart/form-data" >
$value = $arResult["PROPERTIES"][$propertyName]['ID']['VALUE'];
< input type="hidden" name="PROPERTY[<?=$arResult['PROPERTIES'][$propertyName]['ID']?>][0]" value="<?=$value?>">
< input type="file" name="PROPERTY_FILE_<?=$arResult['PROPERTIES'][$propertyName]['ID']?>_0" />

< input type="submit" class="submitbutton" name="<?if(!$arResult["UPDATE"]):?>submit_iblock_add<?else:?>submit_iblock_update<?endif?>" value="SAVE" />
< /form >
  • Вопрос задан
  • 11253 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@rollbackTNV
Программист Bitrix & other CMS
Статья свежая - только что прочитал - https://dev.1c-bitrix.ru/community/webdev/user/640...

Твою задачу решил так, правда не понимаю смысла
<form action="" method="POST">
<?foreach ($_POST["NEW_FILE_UPLOAD"] as $key => $item):?>
	<?$img = htmlspecialchars($item);?>
	<img src="<?=CFIle::GetPath($img)?>" width="150px">
<?endforeach?>
<?$APPLICATION->IncludeComponent("bitrix:main.file.input", "drag_n_drop",
   array(
      "INPUT_NAME"=>"NEW_FILE_UPLOAD",
      "MULTIPLE"=>"Y",
      "MODULE_ID"=>"main",
      "MAX_FILE_SIZE"=>"",
      "ALLOW_UPLOAD"=>"A", 
      "ALLOW_UPLOAD_EXT"=>"",
	  "INPUT_CAPTION" => "Добавить фото",
	  "INPUT_VALUE" => $_POST['NEW_FILE_UPLOAD']
   ),
   false
);?>
	<input class="pic" type="text" value="" id="newF">
	<input type="submit" value="Отправить">
</form>


в script.js компонента вставил в конец window.BlogBFileDialogUploader.prototype.Callback
var inp = BX("newF");
	BX.adjust(inp, {props: {value: result.element_id}});


Можно после загрузки файла получить в поле формы id, отобразить изображения после загрузки - да тут куча возможностей
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы