]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - examples/Multipart.hs
multipart/form-data and more
[Lucu.git] / examples / Multipart.hs
diff --git a/examples/Multipart.hs b/examples/Multipart.hs
new file mode 100644 (file)
index 0000000..b7faa38
--- /dev/null
@@ -0,0 +1,35 @@
+import Data.List
+import Data.Maybe
+import Network
+import Network.HTTP.Lucu
+
+main :: IO ()
+main = let config    = defaultConfig { cnfServerPort = PortNumber 9999 }
+           resources = mkResTree [ ([], resMain) ]
+       in
+         do putStrLn "Access http://localhost:9999/ with your browser."
+            runHttpd config resources
+
+
+resMain :: ResourceDef
+resMain 
+    = ResourceDef {
+        resUsesNativeThread = False
+      , resIsGreedy         = False
+      , resGet
+          = Just $ do setContentType $ read "text/html"
+                      output ("<title>Multipart Form Test</title>" ++
+                              "<form action=\"/\" method=\"post\" enctype=\"multipart/form-data\">" ++
+                              "  Enter some value:" ++
+                              "  <input type=\"text\" name=\"val\">" ++
+                              "  <input type=\"submit\" value=\"Submit\">" ++
+                              "</form>")
+      , resHead   = Nothing
+      , resPost
+          = Just $ do form <- inputForm defaultLimit
+                      let value = fromMaybe "" $ fmap snd $ find ((== "val") . fst) form
+                      setContentType $ read "text/plain"
+                      output ("You entered: " ++ value)
+      , resPut    = Nothing
+      , resDelete = Nothing
+      }
\ No newline at end of file