Lucu-0.3: examples/Multipart.hs
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
}