From 07657b8a9f5c2fd9047594ec8604b9c439a999e4 Mon Sep 17 00:00:00 2001 From: Aleksey Veresov Date: Sat, 4 Apr 2020 19:39:38 +0300 Subject: [magi] Finalization. --- examples/upload.c | 62 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 27 deletions(-) (limited to 'examples/upload.c') diff --git a/examples/upload.c b/examples/upload.c index bf8eed1..d07db16 100644 --- a/examples/upload.c +++ b/examples/upload.c @@ -1,51 +1,59 @@ +/* This is basic example of handling file uploading. + * It is using magi_loadfiles callback to load file temporarily and change its + * name into the one specified by user. + */ #include #include -void response(magi_request *r) +void upload(magi_request *r) { char *name = magi_request_param(r, "name"); const magi_file *data = magi_request_file(r, "data"); - magi_response(r, - "" - "" - "Upload File" - ""); - if (name && data) { - rename("data", name); - magi_response(r, "

Uploaded!

"); + if (name && data) { /* If file to load and its name are in the request: */ + rename("data", name); /* Rename loaded file to designated name. */ + printf("

Uploaded!

"); /* And display success message. */ } - magi_response(r, - "
" - "" - "" - "" - "
" - "" - ""); +} + +void response(magi_request *r) +{ + magi_response_default(); /* Pass default headers and send body: */ + printf("" + "" + "Upload File" + ""); + upload(r); + printf("
" + "" + "" + "" + "
" + ""); } void get(magi_request *r) { magi_loadfiles rules = { 0, 0 }; + /* Setup callback to load file from "data" field into file "data": */ magi_loadfiles_add(&rules, "data", "data", 0); - magi_loadfiles_set(r, &rules); - magi_cgi(r); - magi_loadfiles_free(&rules); + magi_loadfiles_set(r, &rules); /* Setup request to use the callback. */ + magi_parse(r); + magi_loadfiles_free(&rules); /* Free data of callback. */ } int main() { magi_request request; magi_request_init(&request); - get(&request); - if (request.error) { - magi_response_error(&request); + get(&request); /* Parse request. */ + if (request.error) { /* If error occurred display error message: */ + magi_error_response(request.error); } else { - response(&request); + response(&request); /* Overwise response request. */ } - magi_request_free(&request); + magi_request_free(&request); /* Don't forget to free everything after. */ return 0; } -- cgit v1.2.3