From 712e8bb475cae98f8b54a24ee0cfc5dd75fe1072 Mon Sep 17 00:00:00 2001 From: ncaq Date: Tue, 17 Apr 2018 14:33:38 +0900 Subject: [PATCH] added: addContentDispositionFileName --- yesod-core/Yesod/Core/Handler.hs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/yesod-core/Yesod/Core/Handler.hs b/yesod-core/Yesod/Core/Handler.hs index 5b9cb3b7..55ad6e32 100644 --- a/yesod-core/Yesod/Core/Handler.hs +++ b/yesod-core/Yesod/Core/Handler.hs @@ -118,6 +118,7 @@ module Yesod.Core.Handler , setHeader , replaceOrAddHeader , setLanguage + , addContentDispositionFileName -- ** Content caching and expiration , cacheSeconds , neverExpires @@ -780,6 +781,14 @@ deleteCookie a = addHeaderInternal . DeleteCookie (encodeUtf8 a) . encodeUtf8 setLanguage :: MonadHandler m => Text -> m () setLanguage = setSession langKey +-- | Set attachment file name. +-- +-- allow UTF-8 character. +addContentDispositionFileName :: MonadHandler m => T.Text -> m () +addContentDispositionFileName name + = addHeader "Content-Disposition" $ + "attachment; filename*=UTF-8''" `mappend` decodeUtf8 (H.urlEncode True (encodeUtf8 name)) + -- | Set an arbitrary response header. -- -- Note that, while the data type used here is 'Text', you must provide only