Преглед изворни кода

Improve documentation of example

bel пре 10 година
родитељ
комит
72bff5390a
1 измењених фајлова са 33 додато и 6 уклоњено
  1. 33 6
      examples/upload/upload.c

+ 33 - 6
examples/upload/upload.c

@@ -1,5 +1,7 @@
-// Copyright (c) 2004-2012 Sergey Lyubka
-// This file is a part of civetweb project, http://github.com/bel2125/civetweb
+/* Copyright (c) 2014 the Civetweb developers
+ * Copyright (c) 2004-2012 Sergey Lyubka
+ * This file is a part of civetweb project, http://github.com/bel2125/civetweb
+ */
 
 
 #include <stdio.h>
 #include <stdio.h>
 #include <string.h>
 #include <string.h>
@@ -17,20 +19,27 @@ typedef __int64 int64_t;
 
 
 #include "civetweb.h"
 #include "civetweb.h"
 
 
+
+/* callback: used to generate all content */
 static int begin_request_handler(struct mg_connection *conn)
 static int begin_request_handler(struct mg_connection *conn)
 {
 {
     if (!strcmp(mg_get_request_info(conn)->uri, "/handle_post_request")) {
     if (!strcmp(mg_get_request_info(conn)->uri, "/handle_post_request")) {
         mg_printf(conn, "%s", "HTTP/1.0 200 OK\r\n\r\n");
         mg_printf(conn, "%s", "HTTP/1.0 200 OK\r\n\r\n");
         mg_upload(conn, "/tmp");
         mg_upload(conn, "/tmp");
     } else {
     } else {
-        // Show HTML form. Make sure it has enctype="multipart/form-data" attr.
+        /* Show HTML form. */
+        /* See http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1 */
         static const char *html_form =
         static const char *html_form =
             "<html><body>Upload example."
             "<html><body>Upload example."
+            ""
+            /* enctype="multipart/form-data" */
             "<form method=\"POST\" action=\"/handle_post_request\" "
             "<form method=\"POST\" action=\"/handle_post_request\" "
             "  enctype=\"multipart/form-data\">"
             "  enctype=\"multipart/form-data\">"
             "<input type=\"file\" name=\"file\" /> <br/>"
             "<input type=\"file\" name=\"file\" /> <br/>"
             "<input type=\"submit\" value=\"Upload\" />"
             "<input type=\"submit\" value=\"Upload\" />"
-            "</form></body></html>";
+            "</form>"
+            ""
+            "</body></html>";
 
 
         mg_printf(conn, "HTTP/1.0 200 OK\r\n"
         mg_printf(conn, "HTTP/1.0 200 OK\r\n"
                   "Content-Length: %d\r\n"
                   "Content-Length: %d\r\n"
@@ -42,22 +51,40 @@ static int begin_request_handler(struct mg_connection *conn)
     return 1;
     return 1;
 }
 }
 
 
+
+/* callback: called after uploading a file is completed */
 static void upload_handler(struct mg_connection *conn, const char *path)
 static void upload_handler(struct mg_connection *conn, const char *path)
 {
 {
     mg_printf(conn, "Saved [%s]", path);
     mg_printf(conn, "Saved [%s]", path);
 }
 }
 
 
+
+/* Main program: Set callbacks and start the server.  */
 int main(void)
 int main(void)
 {
 {
+    /* Test server will use this port */
+    const char * PORT = "8080";
+
+    /* Startup options for the server */
     struct mg_context *ctx;
     struct mg_context *ctx;
-    const char *options[] = {"listening_ports", "8080", NULL};
+    const char *options[] = {
+        "listening_ports", PORT,
+        NULL};
     struct mg_callbacks callbacks;
     struct mg_callbacks callbacks;
 
 
     memset(&callbacks, 0, sizeof(callbacks));
     memset(&callbacks, 0, sizeof(callbacks));
     callbacks.begin_request = begin_request_handler;
     callbacks.begin_request = begin_request_handler;
     callbacks.upload = upload_handler;
     callbacks.upload = upload_handler;
+
+    /* Display a welcome message */
+    printf("File upload demo.\n");
+    printf("Open http://localhost:%s/ im your browser.\n\n", PORT);
+
+    /* Start the server */
     ctx = mg_start(&callbacks, NULL, options);
     ctx = mg_start(&callbacks, NULL, options);
-    getchar();  // Wait until user hits "enter"
+
+    /* Wait until thr user hits "enter", then stop the server */
+    getchar();
     mg_stop(ctx);
     mg_stop(ctx);
 
 
     return 0;
     return 0;