我正在尝试将包含多个二进制文件的POST请求发送到HTTP服务器。服务器使用cgicc解释请求。
对于单个文件,它的工作方式如下:
cgicc::Cgicc cgi;
cgicc::const_file_iterator file;
file = cgi.getFile("file_1");
if(file != cgi.getFiles().end())
{
std::stringstream stringStream;
file->writeToStream(stringStream);
//do whatever with stringStream
}
现在,假设我要发布多个文件,并且不知道每个附件的名称,以便为每个文件调用
cgi.getFile("file_x")
,有没有办法遍历所有文件?对于GET参数,我可以这样做:cgicc::Cgicc cgi;
const std::vector<cgicc::FormEntry> &formElements = cgi.getElements();
for (std::vector<cgicc::FormEntry>::const_iterator i = formElements.begin(); i != formElements.end(); ++i)
{
//process each (*i)
}
最佳答案
我已经弄清楚了(这很明显,但是文献记载不多):
cgicc::Cgicc cgi;
const std::vector<cgicc::FormFile> &formFiles= cgi.getFiles();
for (std::vector<cgicc::FormFile>::const_iterator i = formFiles.begin(); i != formFiles.end(); ++i)
{
//process each (*i)
}