如何保存poco上传的文件

时间:2016-02-08 12:04:55

标签: c++ poco-libraries

我想使用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天的时间搜索和测试不同的方法,但我找不到任何方法,请帮助解决这个问题。

先谢谢你。

1 个答案:

答案 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();
    }

但不幸的是,如果有多个此代码无法正确捕获,则它适用于一个文件。