4 import Network.HTTP.Lucu
7 main = let config = defaultConfig { cnfServerPort = PortNumber 9999 }
8 resources = mkResTree [ ([], resMain) ]
10 do putStrLn "Access http://localhost:9999/ with your browser."
11 runHttpd config resources []
14 resMain :: ResourceDef
17 resUsesNativeThread = False
20 = Just $ do setContentType $ read "text/html"
21 output ("<title>Multipart Form Test</title>" ++
22 "<form action=\"/\" method=\"post\" enctype=\"multipart/form-data\">" ++
23 " Upload some file:" ++
24 " <input type=\"text\" name=\"text\">" ++
25 " <input type=\"file\" name=\"file\">" ++
26 " <input type=\"submit\" value=\"Submit\">" ++
30 = Just $ do form <- inputForm defaultLimit
31 let text = fromMaybe "" $ fmap snd $ find ((== "text") . fst) form
32 file = fromMaybe "" $ fmap snd $ find ((== "file") . fst) form
33 setContentType $ read "text/plain"
34 outputChunk ("You entered \"" ++ text ++ "\".\n")
35 output ("You uploaded a " ++ show (length file) ++ " bytes long file.\n")