我想上傳圖像到遠程web服務器。我用過HTMLForm和FilePartSource。我能夠成功地將圖像上傳到本地服務器(即loclhost),但是當我嘗試在遠程服務器上傳圖像時,從遠程網絡服務器收到的響應是「需要411長度」。 我試圖設置request.setContentLength(sizeofimagefile),但仍然是同樣的問題。 任何人都可以指導我什麼是問題或。 這是我的代碼。POCO:如何上傳圖像到webser使用poco在c + +
HTMLForm htmlform;
htmlform.set("aaaaaa", "bbbbbbb");
htmlform.set("cccccc", "ddddddd");
htmlform.setEncoding(HTMLForm::ENCODING_MULTIPART);
PartSource * pFileSrc = new FilePartSource("filename", "application/octet-stream");
std::istream& mystream = pFileSrc->stream();
mystream.seekg(0, std::ios::end);
int uiLength = mystream.tellg();
htmlform.addPart("file", pFileSrc);
URI uri("yyy");
HTTPClientSession session(uri.getHost(), uri.getPort());
HTTPRequest post_req(Poco::Net::HTTPRequest::HTTP_POST,"xxx",HTTPMessage::HTTP_1_1);
post_req.setKeepAlive(true);
htmlform.prepareSubmit(post_req);
std::ostream& oustr = session.sendRequest(post_req);
htmlform.write(oustr);
HTTPResponse res;
std::istream& rs = session.receiveResponse(res);
std::cerr << rs.rdbuf();
在此先感謝
in setContentLength(sizeofimagefile),您是否包含您在請求dataBlock中與圖像一起發送的參數「aaaaaa」和「cccccc」的大小?如果您爲表單使用POST方法,則這些參數會轉到與您嘗試上載的圖像相同的數據塊。 –