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

API для загрузки файлов и прикрепление к сообщениям

00 голосов
4
Я, сколько не искал, так и не смог найти, каким образом через API можно залить файл в битрикс. 
Переношу форум с одного старого движка на битрикс, когда дошло дело до портирования прикрепленных файлов, столкнулся с этой проблемой. Подскажите, как можно залить файл? 

И еще - в CForumMessage есть поле ATTACH_IMG, сюда указывается айдишник загруженнного файла. Но судя по интерфейсу, к сообщениям можно прикреплять множество файлов. Тогда каким образом на них передавать ссылки если делать добавление через CForumMessage::Add() ?
спросил 29 Янв, 14 от willy (140 баллов)

4 Ответы

00 голосов
Ну как, апишки с выводом формочки для отправления файла я вижу.  
Я просто надеялся, что может есть апишки навроде UploadFile($filename), или нужно именно каждый файл через формочку отправлять? 
Просто несколько тысяч файлов таким макаром будут о-о-о-очень долго портироваться.
ответил 31 Май, 14 от willy (140 баллов)
00 голосов
Так что, никто не знает ничего такого?
ответил 27 Сен, 14 от willy (140 баллов)
00 голосов
Кину кусок сырого кода из выдергивания фоток из соц.сетей. По аналогии можете попробывать.

По сути, копирую по http файл, потом уже делаю с ним махинации. Правда, напрямую прикрепить фотку к профилю не удалось, поэтому приходится удалять первично зарегистрированный файл.



Код
if(strlen($imgUrl)>0)
      {
         if(copy($imgUrl, $arUser['user_fields']['ID'].".jpg"))
         {
            $arFile = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/login/".$arUser['user_fields']['ID'].".jpg");
            $arFile["MODULE_ID"] = "main";
            $fid = CFile::SaveFile($arFile, "main");
            if (intval($fid)>0)
            {
               $arPhoto = CFile::MakeFileArray($fid);
               $user = new CUser;
               $fields = Array(
                  "PERSONAL_PHOTO"  => $arPhoto,
                 );
               $user->Update($arUser['user_fields']['ID'], $fields);
               CFile::Delete($fid);
               unlink($_SERVER["DOCUMENT_ROOT"]."/login/".$arUser['user_fields']['ID'].".jpg");
            }
         }
         
      } 
ответил 30 Янв, 15 от volk (180 баллов)
00 голосов
О! Я до этого как-то и не додумался!
Копипастим файлы на сервак, при добавлении сообщений ищем файл, если такой есть - насильно его запихиваем в массив, будто его по хттп только что передали, а дальше уже делаем сейв. Все гениальное просто smile:D
Спасибо большое!smile:)



А насчет прикрепления нескольких файлов к сообщению никто ничего не подскажет? А то меня реально смущает одинокое поле айдишника ATTACH_IMG, хотя по идее к сообщениям можно прикреплять сколько угодно файлов.
ответил 14 Май, 15 от willy (140 баллов)

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

0 голосов
7 ответов
спросил 20 Май, 13 от Sairys (160 баллов)
0 голосов
10 ответов
спросил 25 Фев, 13 от Alsan (160 баллов)