1 #include "../../../include/http/pages/showimagepage.h"
\r
9 std::map<std::string,std::vector<char> > ShowImagePage::m_imagecache;
\r
11 void ShowImagePage::handleRequest(Poco::Net::HTTPServerRequest &request, Poco::Net::HTTPServerResponse &response)
\r
13 m_log->trace("ShowImagePage::handleRequest from "+request.clientAddress().toString());
\r
15 std::map<std::string,std::string> queryvars;
\r
16 CreateQueryVarMap(request,queryvars);
\r
18 if(request.getVersion()==Poco::Net::HTTPRequest::HTTP_1_1)
\r
20 response.setChunkedTransferEncoding(true);
\r
23 std::string content="";
\r
24 if(queryvars.find("image")!=queryvars.end())
\r
26 if(m_imagecache.find((*queryvars.find("image")).second)!=m_imagecache.end())
\r
28 content+=std::string(m_imagecache[(*queryvars.find("image")).second].begin(),m_imagecache[(*queryvars.find("image")).second].end());
\r
32 FILE *infile=fopen((*queryvars.find("image")).second.c_str(),"rb");
\r
35 fseek(infile,0,SEEK_END);
\r
36 long filelen=ftell(infile);
\r
37 fseek(infile,0,SEEK_SET);
\r
41 std::vector<char> data(filelen,0);
\r
42 fread(&data[0],1,data.size(),infile);
\r
43 content+=std::string(data.begin(),data.end());
\r
44 m_imagecache[(*queryvars.find("image")).second]=data;
\r
52 std::ostream &ostr = response.send();
\r
56 const bool ShowImagePage::WillHandleURI(const std::string &uri)
\r
58 if(uri.find("showimage.htm")!=std::string::npos)
\r