diff --git a/yesod-core/Yesod/Core/Handler.hs b/yesod-core/Yesod/Core/Handler.hs index c48a2cec..2e804a48 100644 --- a/yesod-core/Yesod/Core/Handler.hs +++ b/yesod-core/Yesod/Core/Handler.hs @@ -889,3 +889,8 @@ rawRequestBody :: (HandlerReader m, MonadResource m) => Source m S.ByteString rawRequestBody = do req <- lift waiRequest transPipe liftResourceT $ W.requestBody req + +-- | Stream the data from the file. Since Yesod 1.2, this has been generalized +-- to work in any @MonadResource@. +fileSource :: MonadResource m => FileInfo -> Source m S.ByteString +fileSource = transPipe liftResourceT . fileSourceRaw diff --git a/yesod-core/Yesod/Core/Internal/Request.hs b/yesod-core/Yesod/Core/Internal/Request.hs index 0b2502b1..d067e06f 100644 --- a/yesod-core/Yesod/Core/Internal/Request.hs +++ b/yesod-core/Yesod/Core/Internal/Request.hs @@ -6,7 +6,6 @@ module Yesod.Core.Internal.Request , FileInfo , fileName , fileContentType - , fileSource , fileMove , mkFileInfoLBS , mkFileInfoFile diff --git a/yesod-core/Yesod/Core/Types.hs b/yesod-core/Yesod/Core/Types.hs index cd6113ae..a0332d5f 100644 --- a/yesod-core/Yesod/Core/Types.hs +++ b/yesod-core/Yesod/Core/Types.hs @@ -124,7 +124,7 @@ type RequestBodyContents = data FileInfo = FileInfo { fileName :: !Text , fileContentType :: !Text - , fileSource :: !(Source (ResourceT IO) ByteString) + , fileSourceRaw :: !(Source (ResourceT IO) ByteString) , fileMove :: !(FilePath -> IO ()) }