我正在考虑在Web服务器模块中集成多部分表单数据解析,这样我就可以解除后端Web应用程序(通常用动态语言编写)来解析多部分数据本身.多部分语法(RFC 2046)看起来并不重要,如果我手工实现它,很多事情都可能出错.是否已经有一个用C或C++编写的好的,轻量级的multipart/form-data解析器?我正在寻找除C或C++标准库之外没有外部依赖关系的那个.我不需要电子邮件附件处理或缓冲的I/O类或可移植性运行时或其他任何东西,只需要多部分/表单数据解析.
我考虑过的事情:
我还看过用Ragel编写一个解析器,但我无法弄清楚如何做到这一点,因为语法不是静态的:边界可以任意改变.
我想要消化从PHP脚本发回的C++中的多部分响应.有人知道一个非常轻量级的MIME解析器可以为我做这个吗?
我使用actionscript引擎上传文件,引擎将选择文件并通过网络通过HTTP POST命令发送文件,该文件说POST消息如下:
POST /handler.cfm HTTP/1.1
Accept: text/*
Content-Type: multipart/form-data;
boundary=----------Ij5ae0ae0KM7GI3KM7ei4cH2ei4gL6
User-Agent: Shockwave Flash
Host: www.example.com
Content-Length: 421
Connection: Keep-Alive
Cache-Control: no-cache
------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
Content-Disposition: form-data; name="Filename"
MyFile.jpg
------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
Content-Disposition: form-data; name="photo"; filename="MyFile.jpg"
Content-Type: application/octet-stream
FileDataHere
------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
Content-Disposition: form-data; name="Upload"
Submit Query
------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--
Run Code Online (Sandbox Code Playgroud)
在服务器端,我有一个C++程序侦听端口80并解析POST消息.我只想要文件名和文件数据.如何使用c ++解码文件数据,它是base64编码的,是否有库可以为我做?我想解码二进制文件,并将其写入文件,谢谢!