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

Прикрепленный файл в теле сообщения форума

00 голосов
1
Здравствуйте!
Делаю импорт форума со старого сервера (Битрикс 7.5) на новый (Битрикс 9.5).

При добавлении сообщения с прикрепленным файлом, в поле [ATTACH_IMG], сообщение не добавлялось, с ошибкой что файл не найден. После явного приведения [ATTACH_IMG] к integer, сообщение стало добавляться, но увы, без прикрепленного файла.
То есть, даже в таком виде:
Код
   $arFields = Array (
      "AUTHOR_ID" => "332",
      "AUTHOR_NAME" => "AntonovSV",
      "AUTHOR_IP" => "192.168.117.33",
      "USE_SMILES" => "Y",
      "POST_DATE" => "07-05-2009 08:47:08",
      "POST_MESSAGE" => "В принципе все уже придумано до нас.",
      "POST_MESSAGE_HTML" => "В принципе все уже придумано до нас.",
      "ATTACH_HITS" => 0,
      "NEW_TOPIC" => "N",
      "APPROVED" => "Y",
      "POST_MESSAGE_CHECK" => "b1ebecac63036965b53370b0be1f3e97",
      "GUEST_ID" => "13082",
      "AUTHOR_REAL_IP" => "192.168.117.33",
      "ATTACH_IMG" => 1,
      "EDIT_DATE" => "01-01-1970 03:00:00",
      "FORUM_ID" => "296",
      "TOPIC_ID" => "399",
      );
   $postRes = CForumMessage::Add($arFields);

Сообщение добавляется с пустым полем ATTACH_IMG. В чем может быть дело?
спросил 15 Авг, 13 от l0l (160 баллов)

1 Ответ

00 голосов
Как водится, покопавшись во внутренностях Битрикса, нашел ответ, о котором нет ни слова в документации. Может кому-то пригодится.

Код
   
$res = CFile::GetFileArray($attach_id);
    $attach["name"] =  $res["ORIGINAL_NAME"];
    $attach["size"] = $res["FILE_SIZE"];
    $attach["type"] = $res["CONTENT_TYPE"];
    $attach["tmp_name"] = $_SERVER["DOCUMENT_ROOT"].$res["SRC"];
$arFields = Array ( 
      "AUTHOR_ID" => "332", 
      "AUTHOR_NAME" => "AntonovSV", 
      "AUTHOR_IP" => "192.168.117.33", 
      "USE_SMILES" => "Y", 
      "POST_DATE" => "07-05-2009 08:47:08", 
      "POST_MESSAGE" => "В принципе все уже придумано до нас.", 
      "POST_MESSAGE_HTML" => "В принципе все уже придумано до нас.", 
      "ATTACH_HITS" => 0, 
      "NEW_TOPIC" => "N", 
      "APPROVED" => "Y", 
      "POST_MESSAGE_CHECK" => "b1ebecac63036965b53370b0be1f3e97", 
      "GUEST_ID" => "13082", 
      "AUTHOR_REAL_IP" => "192.168.117.33", 
      "ATTACH_IMG" => $attach,
      "EDIT_DATE" => "01-01-1970 03:00:00", 
      "FORUM_ID" => "296", 
      "TOPIC_ID" => "399", 
      ); 
   $postRes = CForumMessage::Add($arFields); 
ответил 15 Авг, 13 от l0l (160 баллов)

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

0 голосов
3 ответов
спросил 20 Март, 14 от Serofim (800 баллов)
0 голосов
4 ответов
спросил 03 Сен, 13 от Misty (440 баллов)
0 голосов
3 ответов
спросил 11 Март, 13 от Tynia (160 баллов)
0 голосов
4 ответов