我正在尝试将包含多个二进制文件的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)
}

09-28 03:53