happstack-server-6.6.2: Web related tools and services.

Safe HaskellNone

Happstack.Server.Internal.Multipart

Synopsis

Documentation

spanS :: (ByteString -> Bool) -> ByteString -> (ByteString, ByteString)Source

similar to the normal span function, except the predicate gets the whole rest of the lazy bytestring, not just one character.

TODO: this function has not been profiled.

takeWhileS :: (ByteString -> Bool) -> ByteString -> ByteStringSource

crlf :: ByteStringSource

crlfcrlf :: ByteStringSource

blankLine :: ByteStringSource

dropWhileS :: (ByteString -> Bool) -> ByteString -> ByteStringSource

data BodyPart Source

Constructors

BodyPart ByteString ByteString

headers body

Instances

Eq BodyPart 
Ord BodyPart 
Read BodyPart 
Show BodyPart 

data Work Source

Constructors

BodyWork ContentType [(String, String)] ByteString 
HeaderWork ByteString 

data InputIter Source

Constructors

Failed (Maybe (String, Input)) String 
BodyResult (String, Input) InputWorker 
HeaderResult [Header] InputWorker 

type FileSaverSource

Arguments

 = FilePath

tempdir

-> Int64

quota

-> FilePath

filename of field

-> ByteString

content to save

-> IO (Bool, Int64, FilePath)

truncated?, saved bytes, saved filename

defaultFileSaver :: FilePath -> Int64 -> FilePath -> ByteString -> IO (Bool, Int64, FilePath)Source

defaultInputIter :: FileSaver -> FilePath -> Int64 -> Int64 -> Int64 -> Int64 -> Int64 -> Int64 -> Work -> IO InputIterSource

hPutLimit :: Int64 -> Handle -> ByteString -> IO (Bool, Int64)Source

hPutLimit' :: Int64 -> Handle -> Int64 -> ByteString -> IO (Bool, Int64)Source

bodyPartsToInputs :: InputWorker -> [BodyPart] -> IO ([(String, Input)], Maybe String)Source

multipartBody :: InputWorker -> ByteString -> ByteString -> IO ([(String, Input)], Maybe String)Source

simpleInput :: String -> InputSource

Packs a string into an Input of type text/plain

defaultInputType :: ContentTypeSource

The default content-type for variables.

parseMultipartBody :: ByteString -> ByteString -> ([BodyPart], Maybe String)Source

dropPreamble :: ByteString -> ByteString -> (ByteString, Maybe String)Source

dropLine :: ByteString -> ByteStringSource

isBoundarySource

Arguments

:: ByteString

The boundary, without the initial dashes

-> ByteString 
-> Bool 

Check whether a string starts with two dashes followed by the given boundary string.

startsWithDashes :: ByteString -> BoolSource

Checks whether a string starts with two dashes.

splitParts :: ByteString -> ByteString -> ([BodyPart], Maybe String)Source

splitPart :: ByteString -> ByteString -> (BodyPart, ByteString)Source

splitBlank :: ByteString -> (ByteString, ByteString)Source

splitBoundary :: ByteString -> ByteString -> (ByteString, ByteString)Source

splitAtEmptyLine :: ByteString -> Maybe (ByteString, ByteString)Source

splitAtCRLFSource

Arguments

:: ByteString

String to split.

-> Maybe (ByteString, ByteString)

Returns Nothing if there is no CRLF.

Split a string at the first CRLF. The CRLF is not included in any of the returned strings.