Как можно отправить ОБА HTML и изображения с помощью libMongoose / Embedded Mongoose?

Так что библиотека Mongoose.c довольно проста. Я смог использовать их систему событий, распознавание URL, пример нескольких форм и их систему соединений для создания простой системы входа в систему. Я использовал C ++ minGW, mongoose.c&и мой браузер Теперь я хотел бы реализовать изображения.

Но есть фундаментальная проблема, которую я не могу обойти. Я могу передать либо документ HTML, или изображение. JPG, один, будет отображаться счастливо, как и HTML-документ, пока любой из них один. Мой код относительно прост для HTML:

--pretend std::string HTMLAsString holds all html for the document.
mg_send_data(conn,HTMLAsString,strlen(HTMLAsString));

Когда я хочу отправить изображение, это очень похоже:

while ((fread(buf, 1, sizeof(buf), fp)) > 0) {
mg_send_data(conn,buf,n);
}
mg_send_data(conn,"\r\n",2);

Обе эти работы (я вырезал не относящиеся к делу части, например, как строится строка или как заполнен буфер, достаточно сказать, что эти аспекты работают). У меня может быть форматирование HTML с «отсутствующим пространством изображения», или я могу показать изображение, но без HTML.

Как отправить оба изображения и HTML?

1

Решение

Мистер Андерсен должен получить за это кредит, но я не могу пометить комментарий как ответ, и я хочу закрыть вопрос.

Он был мертв. Сначала клиент-браузер запрашивает страницу. Сервер отправляет это. Когда клиент-браузер получает документ HTML, он затем отправляет запросы на сервер для всех изображений / файлов, как указано в HTML.

Я проверял все запросы от клиентов на адреса, используя conn-> uri. Это позволило мне просто выполнить сравнение строк, чтобы выяснить, с какой страницы я получаю данные. Однако я не проверял никаких ДРУГИХ строк кроме тех, для которых у меня были страницы.

Как только я выложу простую:

станд :: соиЬ << «ЗАПРОШЕННЫЙ:» << conn-> URI << станд :: епсИ;

Я видел запросы как день (в моем случае /image.jpg). Поэтому я собрал вышеупомянутый код изображения вместе с еще одним сравнением строк в функции ответа и presto-magico — изображения, встроенные в HTML, и все они играют хорошо и счастливо.

Спасибо, что ответили на мой вопрос.

Постскриптум Код отправляемого файла немного отличается:

char buf[1024];
int n;
FILE *fp;
fp = fopen(cstrpath, "rb");
if(fp==NULL){printf("ERROR, NO %s found.",cstrpath);}
while ((n = fread(buf, 1, sizeof(buf), fp)) > 0) {
mg_send_data(conn,buf,n);
}
fclose(fp);
mg_send_data(conn,"\r\n",2);
0

Другие решения


По вопросам рекламы [email protected]