我想使用poco库上传文件。
现在我在istream变量中有上传的文件,但我不知道如何将其保存到文件中?
这是我的代码,我可以获取文件的长度。
void handlePart(const MessageHeader &header, std::istream &stream) {
_type = header.get("Content-Type", "(unspecified)");
if (header.has("Content-Disposition")) {
std::string disp;
NameValueCollection params;
MessageHeader::splitParameters(header["Content-Disposition"], disp, params);
_name = params.get("name", "(unnamed)");
_fileName = params.get("filename", "(unnamed)");
}
CountingInputStream istr(stream);
NullOutputStream ostr;
StreamCopier::copyStream(istr, ostr);
_length = istr.chars();
}
此外,如果有超过1个文件如何在istream中管理,那么它是否在表单中上传了1个文件?
现在我有2天的时间搜索和测试不同的方法,但我找不到任何方法,请帮助解决这个问题。
先谢谢你。
答案 0 :(得分:0)
取决于#Abhinav问题on this post:
我们可以像这样编写保存代码:
if (fileName.length() != 0){
std::ofstream fout( fileName, std::ios::binary);
fileList.push_back(fileName);
fout << stream.rdbuf() ;
fout.close();
}
但不幸的是,如果有多个此代码无法正确捕获,则它适用于一个文件。