X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Lucu.git;a=blobdiff_plain;f=examples%2FMultipart.hs;h=49945ec666268401256147eee98b201cd07a9876;hp=8ddc6189be39a8ad942d372671819fd6f066e53f;hb=9be2b946657c536a4363a076235f70728be087c4;hpb=3baf479eba12bc3e9c4ef966df770cd70aa5cd81 diff --git a/examples/Multipart.hs b/examples/Multipart.hs index 8ddc618..49945ec 100644 --- a/examples/Multipart.hs +++ b/examples/Multipart.hs @@ -4,38 +4,40 @@ #-} import qualified Data.ByteString.Lazy.Char8 as Lazy import Control.Applicative +import qualified Data.Collections as C import Control.Monad.Unicode import Data.Maybe import Data.Monoid.Unicode import Network.HTTP.Lucu main ∷ IO () -main = let config = defaultConfig { cnfServerPort = "9999" } - resources = mkResTree [ ([], resMain) ] +main = let config = defaultConfig { cnfServerPort = "9999" } + tree ∷ ResourceTree + tree = C.fromList [ ([], nonGreedy resMain) ] in do putStrLn "Access http://localhost:9999/ with your browser." - runHttpd config resources [] + runHttpd config $ resourceMap tree - -resMain ∷ ResourceDef -resMain - = emptyResource { - resGet - = Just $ do setContentType $ parseMIMEType "text/html" - putChunks $ "Multipart Form Test\n" - ⊕ "
\n" - ⊕ " Upload some file:\n" - ⊕ " \n" - ⊕ " \n" - ⊕ " \n" - ⊕ "
\n" - , resPost - = Just $ do form ← getForm Nothing - let text = fromMaybe (∅) $ fdContent <$> lookup "text" form - file = fromMaybe (∅) $ fdContent <$> lookup "file" form - fileName = fdFileName =≪ lookup "file" form - setContentType $ parseMIMEType "text/plain" - putChunks $ "You entered \"" ⊕ text ⊕ "\".\n" - putChunks $ "You uploaded a " ⊕ Lazy.pack (show $ Lazy.length file) ⊕ " bytes long file.\n" - putChunks $ "The file name is " ⊕ Lazy.pack (show fileName) ⊕ ".\n" - } +resMain ∷ Resource +resMain = C.fromList + [ ( GET + , do setContentType $ parseMIMEType "text/html" + putChunks $ "Multipart Form Test\n" + ⊕ "
\n" + ⊕ " Upload some file:\n" + ⊕ " \n" + ⊕ " \n" + ⊕ " \n" + ⊕ "
\n" + ) + , ( POST + , do form ← getForm Nothing + let text = fromMaybe (∅) $ fdContent <$> lookup "text" form + file = fromMaybe (∅) $ fdContent <$> lookup "file" form + fileName = fdFileName =≪ lookup "file" form + setContentType $ parseMIMEType "text/plain" + putChunks $ "You entered \"" ⊕ text ⊕ "\".\n" + putChunks $ "You uploaded a " ⊕ Lazy.pack (show $ Lazy.length file) ⊕ " bytes long file.\n" + putChunks $ "The file name is " ⊕ Lazy.pack (show fileName) ⊕ ".\n" + ) + ]