this will take a image from C328 serial camera and store those images in mbed flash as html and this html page is uploaded into the server at ip:192.168.1.2
Diff: lwip/HTTPServer/HTTPFields.h
- Revision:
- 0:e1a0471e5ffb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lwip/HTTPServer/HTTPFields.h Wed Dec 15 15:01:56 2010 +0000 @@ -0,0 +1,49 @@ +#ifndef HTTPATTRIBUTE_H +#define HTTPATTRIBUTE_H + +#include "HTTPServer.h" + +/** + * A simple HTTPHandler which will add new fields to the httpresult header. + * It can be used for adding caching strtegies. + */ +class HTTPFields : public HTTPHandler { + public: + /** + * Create new HTTPFields + * @param prefix The prefix path on witch we will execute the Handler. Means add the fields. + * @param fields The Fields wicht are added to all Handlers with the same prefix and which are added after this one. + */ + HTTPFields(const char *prefix, const char *fields) : HTTPHandler(prefix) { _fields = fields; } + HTTPFields(HTTPServer *server, const char *prefix, const char *fields) : HTTPHandler(prefix) { _fields = fields; server->addHandler(this); } + + private: + /** + * The Action methon should work on a Connection. + * If the result is HTTP_AddFields the Server will know that we modified the connection header. + * If the result is HTTP_Deliver the server will use this object to anwere the request. + * + * In this case we add new fields to the header. + */ + virtual HTTPHandle action(HTTPConnection *con) const { + char *old = (char *)con->getHeaderFields(); + int oldlen = strlen(old); + int atrlen = strlen(_fields); + char *fields = new char[atrlen+oldlen+3]; + strcpy(fields,old); + fields[oldlen+0] = '\r'; + fields[oldlen+1] = '\n'; + strcpy(&fields[oldlen+2], _fields); + fields[atrlen+2+oldlen] = '\0'; + con->setHeaderFields(fields); + if(*old) { + delete old; + } + return HTTP_AddFields; + } + + const char *_fields; +}; + +#endif +