我正在尝试将一个大文件上传到我的 http 服务器。
我需要显示上传进度。
我怎样才能获得在上传过程中发送了多少字节?
需要将事件发送到我的 GUI。
在 poco 中,我不知道在哪里放置回调。
_session.sendRequest(_request)
_session.receiveResponse(_response)
有任何想法吗?或链接,谢谢!!
我正在尝试将一个大文件上传到我的 http 服务器。
我需要显示上传进度。
我怎样才能获得在上传过程中发送了多少字节?
需要将事件发送到我的 GUI。
在 poco 中,我不知道在哪里放置回调。
_session.sendRequest(_request)
_session.receiveResponse(_response)
有任何想法吗?或链接,谢谢!!
这在 08 年“部分”讨论过。具有讽刺意味的是,我正在寻找完全相同的东西。
http://sourceforge.net/mailarchive/message.php?msg_id=20619477
编辑:2012 年 2 月 14 日
这不是最好的,但它有效......可能最好一次写入 1k 个块。我想看看你的建议。
std::string szMessage;
.... /* fill your szMessage such as with a Form.write() */ ..
CountingOutputStream _cos( _session.sendRequest(_request) )
std::streamsize len = 0;
string::iterator it;
for ( it=szMessage.begin() ; it < szMessage.end(); it++ ) {
len ++;
_cos.put(*it);
if(len %4096 ==0)
cout << "len: " << len << endl;
}
cout << "Chars printed: " << len << endl;
std::istream& rsout = _session.receiveResponse(_response)
std::ostringstream ostr;
StreamCopier::copyStream(rsout, ostr);
// Retrieve response is not necessary if we have the resp code
std::cout << endl; response.write(cout);
std::cout << ostr.str();
int code = response.getStatus();
if (code != nRespCode) {
stringstream s;
s << "HTTP Error(*): " << code;
throw Poco::IOException(s.str());
}