X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Lucu.git;a=blobdiff_plain;f=examples%2FMultipart.hs;h=9c42e7269a4984452d8914aea1644ba02891f1eb;hp=69c4125accd5a97c54f909dea9141fd5866062c8;hb=ac2ff93;hpb=fc4e0252eed3c9cb43c250ea7dd29ef5dffa6dad diff --git a/examples/Multipart.hs b/examples/Multipart.hs index 69c4125..9c42e72 100644 --- a/examples/Multipart.hs +++ b/examples/Multipart.hs @@ -1,8 +1,15 @@ -import qualified Data.ByteString.Lazy.Char8 as L8 +{-# LANGUAGE + OverloadedStrings + , UnicodeSyntax + #-} +import qualified Data.ByteString.Lazy.Char8 as Lazy +import Control.Applicative +import Control.Monad.Unicode import Data.Maybe +import Data.Monoid.Unicode import Network.HTTP.Lucu -main :: IO () +main ∷ IO () main = let config = defaultConfig { cnfServerPort = "9999" } resources = mkResTree [ ([], resMain) ] in @@ -10,30 +17,25 @@ main = let config = defaultConfig { cnfServerPort = "9999" } runHttpd config resources [] -resMain :: ResourceDef +resMain ∷ ResourceDef resMain - = ResourceDef { - resUsesNativeThread = False - , resIsGreedy = False - , resGet - = Just $ do setContentType $ read "text/html" - output ("Multipart Form Test" ++ - "
" ++ - " Upload some file:" ++ - " " ++ - " " ++ - " " ++ - "
") - , resHead = Nothing + = emptyResource { + resGet + = Just $ do setContentType $ mkMIMEType "text" "html" + output ("Multipart Form Test\n" ⊕ + "
\n" ⊕ + " Upload some file:\n" ⊕ + " \n" ⊕ + " \n" ⊕ + " \n" ⊕ + "
\n") , resPost - = Just $ do form <- inputForm defaultLimit - let text = fromMaybe L8.empty $ fmap fdContent $ lookup "text" form - file = fromMaybe L8.empty $ fmap fdContent $ lookup "file" form - fileName = fdFileName =<< lookup "file" form - setContentType $ read "text/plain" - outputChunk ("You entered \"" ++ L8.unpack text ++ "\".\n") - outputChunk ("You uploaded a " ++ show (L8.length file) ++ " bytes long file.\n") - output ("The file name is " ++ show fileName ++ ".\n") - , resPut = Nothing - , resDelete = Nothing - } \ No newline at end of file + = Just $ do form ← inputForm defaultLimit + let text = fromMaybe (∅) $ fdContent <$> lookup "text" form + file = fromMaybe (∅) $ fdContent <$> lookup "file" form + fileName = fdFileName =≪ lookup "file" form + setContentType $ mkMIMEType "text" "plain" + outputChunk ("You entered \"" ⊕ text ⊕ "\".\n") + outputChunk ("You uploaded a " ⊕ Lazy.pack (show $ Lazy.length file) ⊕ " bytes long file.\n") + output ("The file name is " ⊕ Lazy.pack (show fileName) ⊕ ".\n") + }