如何使用libMongoose/Embedded Mongoose发送HTML和图像
How Does One Send BOTH HTML and Images Using libMongoose/Embedded Mongoose?
所以Mongoose.c库非常直接。我已经能够使用他们的事件系统、URL识别、多表单示例和他们的连接系统来构建一个简单的登录系统。我使用了c++ minGW、mongoose.c& h和我的浏览器。现在我想实现图像。
但是有一个基本的问题我无法回避。我可以转移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,"rn",2);
这两个都可以工作(我已经剪掉了不相关的部分,比如字符串是如何组成的,或者缓冲区是如何填充的,足以说明这些方面的工作)。我可以有HTML格式,有一个'缺失的图像空间',或者我可以有一个图像显示,但没有HTML。
如何同时发送图像和HTML?
安徒生应该为此得到赞扬,但我不能把评论标记为答案,我想结束这个问题。
他完全正确。首先,客户端浏览器请求页面。服务器发送它。当客户端浏览器接收到HTML文档时,它会向服务器发送请求,以获取HTML中指定的所有图像/文件。我正在检查所有来自客户端的请求地址,使用conn->uri。这允许我简单地运行字符串比较来确定我从哪个页面接收数据。然而,我没有检查任何其他字符串,除了那些我有页面。
只要我放一个简单的:
std:: cout & lt; & lt;要求:"& lt; & lt;康涅狄格州-> uri & lt; & lt;std:: endl;
我清楚地看到了请求(在我的情况下/image.jpg)。因此,我将前面提到的图像代码与reply函数中的另一个字符串比较放在一起,然后魔术般地,嵌入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,"rn",2);
相关文章:
- 从命令行c++发送文本文件名
- 发送一个带有libcurl C++问题的帖子请求:s
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 如何在C++中将函数发送到另一个进程
- boost xml parsingl将xml的路径作为变量发送
- 如何将数组从Objective-C发送到C++函数
- 如何使用ESP8266向谷歌主页发送命令
- 当服务中的事件被触发时,如何将响应从服务发送回客户端?
- 通过 c++ 中的套接字发送 html
- 通过QT WebSocket将OpenCV Mat Image发送到HTML客户端
- C 通过套接字将压缩的HTML发送到浏览器
- C++通过Outlook发送HTML电子邮件
- 通过 tcp 和浏览器发送带有 HTTP 协议的 html 文件会显示错误
- 如何将HTML表单发送到网站进行登录,并使用c++下载网页(使用WinHTTP API)
- 如何使用libMongoose/Embedded Mongoose发送HTML和图像
- 获取在c++中用HTML表单发送的POST参数
- 发送数据到html网站嵌入在QT gui使用Qwebview
- 从c++发送到PHP / HTML
- 用C++发送HTML格式电子邮件的简单方法
- 使用Poco库在邮件中发送HTML代码