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

# File lib/rack/multipart.rb, line 39
def build_multipart(params, first = true)
  Generator.new(params, first).dump
end
# File lib/rack/multipart.rb, line 35
def extract_multipart(request, params = Rack::Utils.default_query_parser)
  parse_multipart(request.env)
end
# 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