module Rack::Multipart
A multipart form data parser, adapted from IOWA.
Usually, Rack::Request#POST
takes care of calling this.
Constants
- ATTRIBUTE
- ATTRIBUTE_CHAR
-
Updated definitions from RFC 2231
- BROKEN
- CONDISP
- DISPPARM
- EOL
- EXTENDED_INITIAL_NAME
- EXTENDED_INITIAL_PARAMETER
- EXTENDED_INITIAL_VALUE
- EXTENDED_OTHER_NAME
- EXTENDED_OTHER_PARAMETER
- EXTENDED_OTHER_VALUE
- EXTENDED_PARAMETER
- MULTIPART
- MULTIPART_BOUNDARY
- MULTIPART_CONTENT_DISPOSITION
- MULTIPART_CONTENT_ID
- MULTIPART_CONTENT_TYPE
- REGULAR_PARAMETER
- REGULAR_PARAMETER_NAME
- RFC2183
- SECTION
- TOKEN
- VALUE
Public Class Methods
Source
# File lib/rack/multipart.rb, line 39 def build_multipart(params, first = true) Generator.new(params, first).dump end
Source
# File lib/rack/multipart.rb, line 35 def extract_multipart(request, params = Rack::Utils.default_query_parser) parse_multipart(request.env) end
Source
# File lib/rack/multipart.rb, line 17 def parse_multipart(env, params = Rack::Utils.default_query_parser) io = env[RACK_INPUT] if content_length = env['CONTENT_LENGTH'] content_length = content_length.to_i end content_type = env['CONTENT_TYPE'] tempfile = env[RACK_MULTIPART_TEMPFILE_FACTORY] || Parser::TEMPFILE_FACTORY bufsize = env[RACK_MULTIPART_BUFFER_SIZE] || Parser::BUFSIZE info = Parser.parse(io, content_length, content_type, tempfile, bufsize, params) env[RACK_TEMPFILES] = info.tmp_files return info.params end