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

Загрузка файлов в каталог

00 голосов
5
Здравствуйте, сразу извиняюсь если не в тему форума или ветки, другого не нашел...

Стоит задача автоматически создавать элементы каталога, по ряду причин импорт заказчику не подходит...

Делаю следующим образом:
Код
<?

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

if (CModule::IncludeModule("iblock"))
{
$oElement = new CIBlockElement();
$arUpdateValues = array();
$arUpdatePropertyValues = array();
$arParams["RESIZE_IMAGES"] = "Y";
$arParams["ID"] = intval($_REQUEST["CODE"]);


$arUpdateValues["NAME"]         = "TESTNAME";
$arUpdateValues["TAGS"]       = "Тэги";
$arUpdateValues["PREVIEW_TEXT"]      = "PREVIEW_TEXT";
$arUpdateValues["DETAIL_TEXT"]       = "DETAIL_TEXT";
$arUpdateValues["DATE_ACTIVE_FROM"]    = ConvertTimeStamp(false, "FULL");
...
//---Свойства---
$arUpdateValues["PROPERTY_VALUES"]["PROPNAME1"]   = "2";
$arUpdateValues["PROPERTY_VALUES"]["PROPNAME2"]   = "4";

$bWorkflowIncluded = CIBlock::GetArrayByID($arParams["IBLOCK_ID"], "WORKFLOW") == "Y" && CModule::IncludeModule("workflow");

if (!$arParams["ID"] = $oElement->Add($arUpdateValues, $bWorkflowIncluded, true, $arParams["RESIZE_IMAGES"]))
{
   $arResult["ERRORS"][] = $oElement->LAST_ERROR;
}
?>


Все нормально работает ,но среди свойств(PROPERTY_VALUES) есть одно типа "Файл"(Множ.) это Дополнительные фото к каталогу... Их(фото) нужно подгружать в каталог внутри этого кода при чем не с локального компьютера, а по УРЛ...
Подскажите пожалуйста как это реализовать...

Заранее благодарю!...
спросил 21 Ноя, 13 от andrey2 (160 баллов)

5 Ответы

00 голосов
Свойству типа файл нужно присвоить значение полученное от функции CFile::MakeFileArray
ответил 13 Янв, 14 от Oggi (520 баллов)
00 голосов
Спасибо...
А как притянуть стандартный функционал, по созданию директории для подгруженных файлов элемента каталога и их копированию?
Нужно чтобы поддерживалась стандартная логика назначения имен файлов...
ответил 30 Апр, 14 от andrey2 (160 баллов)
00 голосов
Стандартный функционал по создания директории это чтобы фалы лежали в /upload/iblock/...?
Если да, то при добавлении элемента файл туда и переместится
ответил 26 Авг, 14 от Oggi (520 баллов)
00 голосов
Блинн....

Всё равно не могу разобраться! Сорри, конечно только начал с битриком работать...

Делаю так, отрабатывает, но результата нет:
Код
$arUpdateValues["PROPERTY_VALUES"]["MORE_PHOTO"] = CFile::SaveFile("http://dev.1c-bitrix.ru/bitrix/templates/dev.1c-bitrix/images/1c-bitrix-logo.gif","iblock");



Делаю так, отрабатывает, но результата нет:
Код
$arUpdateValues["PROPERTY_VALUES"]["MORE_PHOTO"] = CFile::MakeFileArray("http://dev.1c-bitrix.ru/bitrix/templates/dev.1c-bitrix/images/1c-bitrix-logo.gif");


По ссылке что вы дали есть пример:
Код
$arFile = CFile::MakeFileArray("http://dev.1c-bitrix.ru/bitrix/templates/dev.1c-bitrix/images/1c-bitrix-logo.gif","iblock");

$arFile["MODULE_ID"] = "support";

$arFields = array(
  "CREATED_MODULE_NAME"   => "mail",
  "MODIFIED_MODULE_NAME"  => "mail",
  "OWNER_SID"             => "user@mail.ru",
  "SOURCE_SID"            => "email",
  "MESSAGE_AUTHOR_SID"    => "user@mail.ru",
  "MESSAGE_SOURCE_SID"    => "email",
  "TITLE"                 => "title",
  "MESSAGE"               => "message",
  "FILES"                 => array($arFile)
  );

$arUpdateValues["PROPERTY_VALUES"]["MORE_PHOTO"]  = CTicket::Set($arFields, $MESSAGE_ID, $TICKET_ID, "N");


Возвращает 500ую ошибку...

Предпологаю что ругается на пустой $MESSAGE_ID... А где мне его взять или сгенерировать?
ответил 31 Дек, 14 от andrey2 (160 баллов)
00 голосов
Пример по ссылке не подойдет. Он приведен для другого модуля (для модуля техподдержки).
Множественные свойства задаются немного иначе. Вы пытаетесь множественное свойство определить как единичное.
Попробуйте:
Код
$arUpdateValues["PROPERTY_VALUES"]["MORE_PHOTO"][] = CFile::MakeFileArray("http://dev.1c-bitrix.ru/bitrix/templates/dev.1c-bitrix/images/1c-bitrix-logo.gif");
ответил 20 Апр, 15 от Oggi (520 баллов)

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

0 голосов
5 ответов
спросил 05 Дек, 13 от Eoling (140 баллов)
0 голосов
1 ответ
0 голосов
1 ответ
спросил 13 Окт, 13 от KRIO (500 баллов)
0 голосов
9 ответов
спросил 26 Май, 13 от Grimmi (2,560 баллов)
0 голосов
2 ответов