Невозможно загрузить файл с помощью Crow C++ из-за ошибки сегментации. ⇐ C++
Невозможно загрузить файл с помощью Crow C++ из-за ошибки сегментации.
В настоящее время я работаю над веб-сервером C++, используя платформу Crow. Я хотел бы иметь возможность отправлять файл из формы на свой сервер. Проблема, с которой я столкнулся, — это ошибка сегментации (дамп ядра) при отправке формы. Кажется, это строка, вызывающая проблему: crow::multipart::message msg(req);
Я не знаю почему, ведь объект запроса (req) не равен нулю. Этого не может быть, потому что я проверяю тип контента перед запуском предыдущей строки. Помогите, пожалуйста. Вот код моей HTML-страницы.
Имя задачи Исполняемый файл Файл данных Создать Яваскрипт
// Получаем элемент формы по его идентификатору var form = document.getElementById("submitform"); // Добавляем прослушиватель событий для события отправки form.addEventListener("отправить", функция(событие) { // Запретить действие по умолчанию при отправке формы событие.preventDefault(); // Создаем новый объект FormData для хранения данных формы вар formData = новый FormData (форма); // Создаем новый объект XMLHttpRequest для отправки запроса на сервер вар xhr = новый XMLHttpRequest(); // Открытие запроса с помощью метода POST и URL-адреса /client-mode/tasks/new xhr.open("POST", "/client-mode/tasks/new"); // Устанавливаем заголовок запроса для типа контента как multipart/form-data xhr.setRequestHeader("Content-Type", "multipart/form-data"); // Добавляем прослушиватель событий для события загрузки, которое происходит при получении ответа от сервера xhr.addEventListener("load", function() { // Проверяем, равен ли код состояния 200 OK если (xhr.status == 200) { // Отображение сообщения об успехе с текстом ответа. alert("Успех: " + xhr.responseText); // Перезагружаем объект окна, чтобы обновить страницу окно.location.reload(); } еще { // Отображение сообщения об ошибке с кодом состояния и текстом ответа alert("Ошибка: " + xhr.status + " - " + xhr.responseText); } }); // Отправляем запрос с данными формы xhr.send(formData); }); Код C++
// Этот маршрут используется для создания новой задачи из данных формы CROW_ROUTE(app, "/client-mode/tasks/new").methods("POST"_method)([](crow::request req, crow::response& res) { // Получаем тип контента из заголовка запроса std::string content_type = req.get_header_value("Content-Type"); // Проверяем, является ли тип контента multipart/form-data if (content_type.find("multipart/form-data") != std::string::npos) { пытаться { // Анализируем тело запроса с помощью класса crow::multipart::message ворона::multipart::сообщение msg(req); std::cout
В настоящее время я работаю над веб-сервером C++, используя платформу Crow. Я хотел бы иметь возможность отправлять файл из формы на свой сервер. Проблема, с которой я столкнулся, — это ошибка сегментации (дамп ядра) при отправке формы. Кажется, это строка, вызывающая проблему: crow::multipart::message msg(req);
Я не знаю почему, ведь объект запроса (req) не равен нулю. Этого не может быть, потому что я проверяю тип контента перед запуском предыдущей строки. Помогите, пожалуйста. Вот код моей HTML-страницы.
Имя задачи Исполняемый файл Файл данных Создать Яваскрипт
// Получаем элемент формы по его идентификатору var form = document.getElementById("submitform"); // Добавляем прослушиватель событий для события отправки form.addEventListener("отправить", функция(событие) { // Запретить действие по умолчанию при отправке формы событие.preventDefault(); // Создаем новый объект FormData для хранения данных формы вар formData = новый FormData (форма); // Создаем новый объект XMLHttpRequest для отправки запроса на сервер вар xhr = новый XMLHttpRequest(); // Открытие запроса с помощью метода POST и URL-адреса /client-mode/tasks/new xhr.open("POST", "/client-mode/tasks/new"); // Устанавливаем заголовок запроса для типа контента как multipart/form-data xhr.setRequestHeader("Content-Type", "multipart/form-data"); // Добавляем прослушиватель событий для события загрузки, которое происходит при получении ответа от сервера xhr.addEventListener("load", function() { // Проверяем, равен ли код состояния 200 OK если (xhr.status == 200) { // Отображение сообщения об успехе с текстом ответа. alert("Успех: " + xhr.responseText); // Перезагружаем объект окна, чтобы обновить страницу окно.location.reload(); } еще { // Отображение сообщения об ошибке с кодом состояния и текстом ответа alert("Ошибка: " + xhr.status + " - " + xhr.responseText); } }); // Отправляем запрос с данными формы xhr.send(formData); }); Код C++
// Этот маршрут используется для создания новой задачи из данных формы CROW_ROUTE(app, "/client-mode/tasks/new").methods("POST"_method)([](crow::request req, crow::response& res) { // Получаем тип контента из заголовка запроса std::string content_type = req.get_header_value("Content-Type"); // Проверяем, является ли тип контента multipart/form-data if (content_type.find("multipart/form-data") != std::string::npos) { пытаться { // Анализируем тело запроса с помощью класса crow::multipart::message ворона::multipart::сообщение msg(req); std::cout
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Невозможно загрузить файл с помощью Crow C++ из-за ошибки сегментации.
Гость » » в форуме Javascript - 0 Ответы
- 1 Просмотры
-
Последнее сообщение Гость
-