Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

свойство типа файл

00 голосов
3
добрый день,
проблема такая: написал форму добавления элемента в ИБ, в котором есть свойство типа файл,
Код
<?
if(CModule::IncludeModule("iblock"))
{
if ($_POST){   

$el = new CIBlockElement;

$PROP = array();
$PROP[96] = $_POST[P96];
$PROP[97] = $_POST[P97];

$arLoadProductArray = Array(
  "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
  "IBLOCK_SECTION" => 0,          // элемент лежит в корне раздела
  "IBLOCK_ID"      => 21,
  "NAME"           => $_POST[NAME],
  "PROPERTY_VALUES"=> $PROP,
  "ACTIVE"         => "Y",            // активен
  );

if($PRODUCT_ID = $el->Add($arLoadProductArray)){
  echo "New ID: ".$PRODUCT_ID;
}
else {
  echo "Error: ".$el->LAST_ERROR;}
}
?>
<form method="POST">
<table border=1 cellspacing=0>
<tr><td>Вакансия<td>Файл с резюме<td>Контактный e-mail
<tr><td><input id="NAME" name="NAME"><td><input type="file" name="P96"><td><input name="97">
</table>
<table>
<tr><td><input type="submit" value="Сохранить">
</table>
</form>
<?}?>


создается элемент, но файл загруженный через написанную мной форму не сохраняется в элементе, подскажите что не так...
спросил 22 Дек, 13 от Rogarond (820 баллов)

3 Ответы

00 голосов
1. файл у вас не загружается, т.к. нет enctype
Код
<form enctype="multipart/form-data">

2. После добавления enctype файл у Вас опять же не загрузится, т.к. информация о файле хранится в массиве $_FILES, а не пост
3. Тут я тоже сомневаюсь, что будет работать
Код
$PROP[96] = $_POST[P96];
$PROP[97] = $_POST[P97]; 

вообще-то индекс у массива в вашем случае должен быть строковый, у Вас же получается, что индексом служит некая константа P96 или P97
Код
$PROP[96] = $_POST['P96'];
$PROP[97] = $_POST['P97']; 
ответил 10 Март, 14 от Darklow (260 баллов)
00 голосов
ну 96 и 97 это номера свойств... для строк все сохраняется, для файла нет - попробую сейчас ваши методы
ответил 30 Июнь, 14 от Rogarond (820 баллов)
00 голосов
при добавлении enctype вообще элемент перестал сохраняться, видимо потому что не сохраняется имя элемента так как идет через POST... подскажите как бы вы реализовали такую форму?
ответил 31 Окт, 14 от Rogarond (820 баллов)