Здравствуйте, как добавить файл к инфоблоку?
Сохраняются все значения кроме файла, в чем может быть проблема?
Сохраняются все значения кроме файла, в чем может быть проблема?
Код |
---|
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()), ] ]; } } |