Здравствуйте, как добавить файл к инфоблоку?
Сохраняются все значения кроме файла, в чем может быть проблема?
Сохраняются все значения кроме файла, в чем может быть проблема?
| Код |
|---|
public static function create_career_request_ticket($params)
{
try {
# Валидация
$validation = validation::validate([
['value' => $params['name'], 'required' => true, 'validator' => 'name',],
['value' => $params['phone'], 'required' => true, 'validator' => 'phone',],
['value' => $params['email'], 'required' => true, 'validator' => 'email',]
]);
if (count($validation['errors']))
throw new Exception(implode(';', $validation['errors']));
# Формирование сообщения
$form_message = 'Новая заявка с формы "Вакансии';
$form_message .= $params['FORM_NAME'] . '".' . PHP_EOL;
$form_message .= PHP_EOL;
$form_message .= 'Имя: ' . $params['name'] . PHP_EOL;
$form_message .= 'Телефон: ' . $params['phone'] . PHP_EOL;
$form_message .= 'Почта: ' . $params['email'] . PHP_EOL;
$form_message .= 'Город: ' . $params['city'] . PHP_EOL;
$form_message .= 'Информация о кандидате: ' . $params['comment'] . PHP_EOL;
# Отправка почты
if (!CEvent::Send("CAREER_FORM", "s2", ['MESSAGE' => $form_message]))
throw new Exception('Ошибка в отправке сообщения, попробуйте ещё раз');
# Добавление элемента в инфоблок
Loader::includeModule("iblock");
$el = new CIBlockElement();
// если есть вложение
if (!empty($_FILES['file']['tmp_name'])) {
// Закачиваем файл в /tmp_resume
$name = $_FILES['file']['name'];
$uploads_dir = $_SERVER['DOCUMENT_ROOT'].'/tmp_resume';
$is_moved = move_uploaded_file($_FILES['file']['tmp_name'], "$uploads_dir/$name");
}
$el_props = [
'IBLOCK_ID' => get_iblock_id('requests2'),
'IBLOCK_SECTION_ID' => get_iblock_section_id('requests2', 'career'),
'NAME' => $params['name'] . ' | ' . $params['phone'],
'ACTIVE' => 'Y',
'DETAIL_TEXT' => $form_message,
'PROPERTY_VALUES' => array(
'RESUME_FILE' => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/tmp_resume/".$name)
)
];
if (!$el->Add($el_props))
throw new Exception($el->LAST_ERROR);
# Возврат удовлетворительного состояния
return [
'status' => 'success',
'data' => [
'message' => "Форма успешно отправлена"
]
];
//unlink ($uploads_dir."/".$name);
} catch (Exception $e) {
return [
'status' => 'error',
'data' => [
'errors' => explode(';', $e->getMessage()),
]
];
}
}
|