X7ROOT File Manager
Current Path:
/opt/cpanel/ea-ruby27/root/usr/share/gems/gems/rack-2.2.22/lib/rack
opt
/
cpanel
/
ea-ruby27
/
root
/
usr
/
share
/
gems
/
gems
/
rack-2.2.22
/
lib
/
rack
/
??
..
??
auth
??
body_proxy.rb
(1.27 KB)
??
builder.rb
(8.21 KB)
??
cascade.rb
(2.22 KB)
??
chunked.rb
(3.19 KB)
??
common_logger.rb
(2.98 KB)
??
conditional_get.rb
(2.99 KB)
??
config.rb
(410 B)
??
content_length.rb
(919 B)
??
content_type.rb
(684 B)
??
core_ext
??
deflater.rb
(5.15 KB)
??
directory.rb
(6.08 KB)
??
etag.rb
(2.14 KB)
??
events.rb
(4.72 KB)
??
file.rb
(88 B)
??
files.rb
(5.74 KB)
??
handler
??
handler.rb
(2.87 KB)
??
head.rb
(520 B)
??
lint.rb
(31.77 KB)
??
lobster.rb
(1.96 KB)
??
lock.rb
(716 B)
??
logger.rb
(384 B)
??
media_type.rb
(1.82 KB)
??
method_override.rb
(1.33 KB)
??
mime.rb
(32.39 KB)
??
mock.rb
(9.14 KB)
??
multipart
??
multipart.rb
(2.57 KB)
??
null_logger.rb
(980 B)
??
query_parser.rb
(8.34 KB)
??
recursive.rb
(1.75 KB)
??
reloader.rb
(3.12 KB)
??
request.rb
(19.95 KB)
??
response.rb
(8.78 KB)
??
rewindable_input.rb
(2.85 KB)
??
runtime.rb
(885 B)
??
sendfile.rb
(6.71 KB)
??
server.rb
(13.29 KB)
??
session
??
show_exceptions.rb
(13.3 KB)
??
show_status.rb
(3.42 KB)
??
static.rb
(6.15 KB)
??
tempfile_reaper.rb
(661 B)
??
urlmap.rb
(2.78 KB)
??
utils.rb
(18.65 KB)
??
version.rb
(786 B)
Editing: multipart.rb
# frozen_string_literal: true require_relative 'multipart/parser' module Rack # A multipart form data parser, adapted from IOWA. # # Usually, Rack::Request#POST takes care of calling this. module Multipart autoload :UploadedFile, 'rack/multipart/uploaded_file' autoload :Generator, 'rack/multipart/generator' EOL = "\r\n" MULTIPART_BOUNDARY = "AaB03x" MULTIPART = %r|\Amultipart/.*boundary=\"?([^\";,]+)\"?|ni TOKEN = /[^\s()<>,;:\\"\/\[\]?=]+/ CONDISP = /Content-Disposition:\s*#{TOKEN}\s*/i VALUE = /"(?:\\"|[^"])*"|#{TOKEN}/ BROKEN = /^#{CONDISP}.*;\s*filename=(#{VALUE})/i MULTIPART_CONTENT_TYPE = /Content-Type: (.*)#{EOL}/ni MULTIPART_CONTENT_DISPOSITION = /Content-Disposition:[^:]*;\s*name=(#{VALUE})/ni MULTIPART_CONTENT_ID = /Content-ID:\s*([^#{EOL}]*)/ni # Updated definitions from RFC 2231 ATTRIBUTE_CHAR = %r{[^ \x00-\x1f\x7f)(><@,;:\\"/\[\]?='*%]} ATTRIBUTE = /#{ATTRIBUTE_CHAR}+/ SECTION = /\*[0-9]+/ REGULAR_PARAMETER_NAME = /#{ATTRIBUTE}#{SECTION}?/ REGULAR_PARAMETER = /(#{REGULAR_PARAMETER_NAME})=(#{VALUE})/ EXTENDED_OTHER_NAME = /#{ATTRIBUTE}\*[1-9][0-9]*\*/ EXTENDED_OTHER_VALUE = /%[0-9a-fA-F]{2}|#{ATTRIBUTE_CHAR}/ EXTENDED_OTHER_PARAMETER = /(#{EXTENDED_OTHER_NAME})=(#{EXTENDED_OTHER_VALUE}*)/ EXTENDED_INITIAL_NAME = /#{ATTRIBUTE}(?:\*0)?\*/ EXTENDED_INITIAL_VALUE = /[a-zA-Z0-9\-]*'[a-zA-Z0-9\-]*'#{EXTENDED_OTHER_VALUE}*/ EXTENDED_INITIAL_PARAMETER = /(#{EXTENDED_INITIAL_NAME})=(#{EXTENDED_INITIAL_VALUE})/ EXTENDED_PARAMETER = /#{EXTENDED_INITIAL_PARAMETER}|#{EXTENDED_OTHER_PARAMETER}/ DISPPARM = /;\s*(?:#{REGULAR_PARAMETER}|#{EXTENDED_PARAMETER})\s*/ RFC2183 = /^#{CONDISP}(#{DISPPARM})+$/i class << self def parse_multipart(env, params = Rack::Utils.default_query_parser) extract_multipart Rack::Request.new(env), params end def extract_multipart(req, params = Rack::Utils.default_query_parser) io = req.get_header(RACK_INPUT) io.rewind content_length = req.content_length content_length = content_length.to_i if content_length tempfile = req.get_header(RACK_MULTIPART_TEMPFILE_FACTORY) || Parser::TEMPFILE_FACTORY bufsize = req.get_header(RACK_MULTIPART_BUFFER_SIZE) || Parser::BUFSIZE info = Parser.parse io, content_length, req.get_header('CONTENT_TYPE'), tempfile, bufsize, params req.set_header(RACK_TEMPFILES, info.tmp_files) info.params end def build_multipart(params, first = true) Generator.new(params, first).dump end end end end
Upload File
Create Folder