Devilz_1
@Devilz_1
Frontend-Developer

Письмо из обратной связи приходит, а вложения нет, что не так?

Всем привет.
Цель: добавить к стандартному функционалу компонента обратной связи возможность отправлять вложения (с ограничением в весе не больше 10мб).
Что сделал: скопировал компонент обратной связи битрикса в другую папку, начал изменять. Вот ниже отрывок кода, где я добавил сначала сохранение файла, а потом и отправку. Но вложение не приходит, что не так? Подскажите пожалуйста.

if($arParams["USE_CAPTCHA"] == "Y")
{
$captcha_code = $_POST["captcha_sid"];
$captcha_word = $_POST["captcha_word"];
$cpt = new CCaptcha();
$captchaPass = COption::GetOptionString("main", "captcha_password", "");
if (strlen($captcha_word) > 0 && strlen($captcha_code) > 0)
{
if (!$cpt->CheckCodeCrypt($captcha_word, $captcha_code, $captchaPass))
$arResult["ERROR_MESSAGE"][] = GetMessage("MF_CAPTCHA_WRONG");
}
else
$arResult["ERROR_MESSAGE"][] = GetMessage("MF_CAPTHCA_EMPTY");

}
if($_FILES['file']['size'] < 10485760)
{
$filePath = $_FILES['file']['tmp_name'];
$fileId = CFile::SaveFile(
  array(
    "name" => $_FILES['file']['name'],
    "size" => $_FILES['file']['size'],
    "tmp_name" => $filePath,
    "old_file" => "0",
    "del" => "N",
    "MODULE_ID" => "",
    "description" => "",
  ),
  'mails',
  false,
  false
);
}
else
{
$arResult["ERROR_MESSAGE"][] = GetMessage("MF_SIZ_IMG");
}

if(empty($arResult["ERROR_MESSAGE"]))
{


$arFields = Array(
"AUTHOR" => $_POST["user_name"],
"AUTHOR_EMAIL" => $_POST["user_email"],
"EMAIL_TO" => $arParams["EMAIL_TO"],
"TOPIC" => $_POST["user_topic"],
"TITLE_MESSAGE" => $title_message_assess." ".$title_message,
"TEXT" => $_POST["MESSAGE"],
);
if(!empty($arParams["EVENT_MESSAGE_ID"]))
{
foreach($arParams["EVENT_MESSAGE_ID"] as $v)
if(IntVal($v) > 0)
CEvent::Send($arParams["EVENT_NAME"], SITE_ID, $arFields, "N", IntVal($v), $fileId);
CFile::Delete($fileId);
}
else
CEvent::Send($arParams["EVENT_NAME"], SITE_ID, $arFields, $fileId);
$_SESSION["MF_NAME"] = htmlspecialcharsbx($_POST["user_name"]);
$_SESSION["MF_EMAIL"] = htmlspecialcharsbx($_POST["user_email"]);
LocalRedirect($APPLICATION->GetCurPageParam("success=".$arResult["PARAMS_HASH"], Array("success")));
}
  • Вопрос задан
  • 301 просмотр
Пригласить эксперта
Ответы на вопрос 1
va_rabbit
@va_rabbit
web
Тяжело понять по этому отрывку кода, нужно весь код видеть.
Первое что бросается в глаза:
else
CEvent::Send($arParams["EVENT_NAME"], SITE_ID, $arFields, $fileId);

У вас тут параметры не все, т.е. если вы прикрепляете файл, то указываете все параметры последовательно.
Как тут:
CEvent::Send($arParams["EVENT_NAME"], SITE_ID, $arFields, "N", IntVal($v), $fileId);

Порядок можно посмотреть тут.
Если не помогает то на каждом ветвлении(if/else) и присваивании посмотреть что лежит в $fileId,т.е.
var_dump($fileId);
//или
print_r($fileId);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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