ring.middleware.multipart-params
Middleware that parses multipart request bodies into parameters.
This middleware is necessary to handle file uploads from web browsers.
Ring comes with two different multipart storage engines included:
ring.middleware.multipart-params.byte-array/byte-array-store
ring.middleware.multipart-params.temp-file/temp-file-store
content-too-large-handler
(content-too-large-handler _)
(content-too-large-handler request respond _)
A handler function that responds with a minimal 413 Content Too Large
response.
multipart-params-request
added in 1.2
(multipart-params-request request)
(multipart-params-request request options)
Adds :multipart-params and :params keys to request.
See: wrap-multipart-params.
wrap-multipart-params
(wrap-multipart-params handler)
(wrap-multipart-params handler options)
Middleware to parse multipart parameters from a request. Adds the
following keys to the request map:
:multipart-params - a map of multipart parameters
:params - a merged map of all types of parameter
The following options are accepted
:encoding - character encoding to use for multipart parsing.
Overrides the encoding specified in the request. If not
specified, uses the encoding specified in a part named
"_charset_", or the content type for each part, or
request character encoding if the part has no encoding,
or "UTF-8" if no request character encoding is set.
:fallback-encoding - specifies the character encoding used in parsing if a
part of the request does not specify encoding in its
content type or no part named "_charset_" is present.
Has no effect if :encoding is also set.
:store - a function that stores a file upload. The function
should expect a map with :filename, :content-type and
:stream keys, and its return value will be used as the
value for the parameter in the multipart parameter map.
The default storage function is the temp-file-store.
:progress-fn - a function that gets called during uploads. The
function should expect four parameters: request,
bytes-read, content-length, and item-count.
:max-file-size - the maximum size allowed size of a file in bytes. If
nil or omitted, there is no limit.
:max-file-count - the maximum number of files allowed in a single request.
If nil or omitted, there is no limit.
:error-handler - a handler that is invoked when the :max-file-size or
:max-file-count limits are exceeded. Defaults to
using the content-too-large-handler function.