From c65fdedc7bedfc20da73cdbfc34c22bb80139896 Mon Sep 17 00:00:00 2001 From: Aleksey Veresov Date: Fri, 28 Feb 2020 20:16:57 +0300 Subject: [magi] --- examples/upload.c | 51 +++++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 24 deletions(-) (limited to 'examples/upload.c') diff --git a/examples/upload.c b/examples/upload.c index 1877d39..158dcad 100644 --- a/examples/upload.c +++ b/examples/upload.c @@ -1,23 +1,22 @@ #include #include -#include -#include -void response_request(magi_request *req, magi_response *res) +void response(magi_request *r) { - char *name = magi_param_list_get(req->params, "name"); - magi_file *data = magi_file_list_get(req->files, "data"); - if (name && data) { - rename("data", name); - } - - magi_response_add(res, + char *name = magi_request_param(r, "name"); + magi_file *data = magi_request_file(r, "data"); + magi_response_add(r, "" "" "Upload File" - "" + ""); + if (name && data) { + rename("data", name); + magi_response_add(r, "

Uploaded!

"); + } + magi_response_add(r, "
" "" @@ -28,22 +27,26 @@ void response_request(magi_request *req, magi_response *res) ""); } +void get(magi_request *r) +{ + magi_loadfiles rules; + magi_loadfiles_init(&rules); + magi_loadfiles_add(&rules, "data", "data", 0); + magi_loadfiles_set(&r, &rules); + magi_cgi(&r); + magi_loadfiles_free(&rules); +} + int main(int argc, char const *argv[]) { - magi_request request; - magi_tempfiles tmps = { 0, 0 }; - magi_request_setup(&request); - magi_tempfiles_add(&tmps, "data", "data", 0); - magi_request_setup_tempfiles(&request, &tmps); - if (magi_request_full_cgi(&request)) { - magi_response response; - magi_response_setup(&response); - response_request(&request, &response); - magi_response_cgi(&response); + magi_request request; + magi_request_init(request); + get(&request); + if (request.error) { + magi_response_error(&request); } else { - magi_error_cgi(request.error); + response(&request); } - magi_tempfiles_destroy(&tmps); - magi_request_destroy(&request); + magi_request_free(&request); return 0; } -- cgit v1.2.3