Class: ActionDispatch::Http::UploadedFile
- Inherits:
-
Object
- Object
- ActionDispatch::Http::UploadedFile
- Defined in:
- lib/action_dispatch/http/upload.rb
Overview
Models uploaded files.
The actual file is accessible via the tempfile
accessor, though some of its interface is available directly for convenience.
Uploaded files are temporary files whose lifespan is one request. When the object is finalized Ruby unlinks the file, so there is no need to clean them with a separate maintenance task.
Instance Attribute Summary collapse
-
#content_type ⇒ Object
A string with the MIME type of the file.
-
#headers ⇒ Object
A string with the headers of the multipart request.
-
#original_filename ⇒ Object
The basename of the file in the client.
-
#tempfile ⇒ Object
(also: #to_io)
A
Tempfile
object with the actual uploaded file.
Instance Method Summary collapse
-
#close(unlink_now = false) ⇒ Object
Shortcut for
tempfile.close
. -
#eof? ⇒ Boolean
Shortcut for
tempfile.eof?
. -
#initialize(hash) ⇒ UploadedFile
constructor
:nodoc:.
-
#open ⇒ Object
Shortcut for
tempfile.open
. -
#path ⇒ Object
Shortcut for
tempfile.path
. -
#read(length = nil, buffer = nil) ⇒ Object
Shortcut for
tempfile.read
. -
#rewind ⇒ Object
Shortcut for
tempfile.rewind
. -
#size ⇒ Object
Shortcut for
tempfile.size
.
Constructor Details
#initialize(hash) ⇒ UploadedFile
:nodoc:
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/action_dispatch/http/upload.rb', line 28 def initialize(hash) # :nodoc: @tempfile = hash[:tempfile] raise(ArgumentError, ":tempfile is required") unless @tempfile if hash[:filename] @original_filename = hash[:filename].dup begin @original_filename.encode!(Encoding::UTF_8) rescue EncodingError @original_filename.force_encoding(Encoding::UTF_8) end else @original_filename = nil end @content_type = hash[:type] @headers = hash[:head] end |
Instance Attribute Details
#content_type ⇒ Object
A string with the MIME type of the file.
18 19 20 |
# File 'lib/action_dispatch/http/upload.rb', line 18 def content_type @content_type end |
#headers ⇒ Object
A string with the headers of the multipart request.
26 27 28 |
# File 'lib/action_dispatch/http/upload.rb', line 26 def headers @headers end |
#original_filename ⇒ Object
The basename of the file in the client.
15 16 17 |
# File 'lib/action_dispatch/http/upload.rb', line 15 def original_filename @original_filename end |
#tempfile ⇒ Object Also known as: to_io
A Tempfile
object with the actual uploaded file. Note that some of its interface is available directly.
22 23 24 |
# File 'lib/action_dispatch/http/upload.rb', line 22 def tempfile @tempfile end |
Instance Method Details
#close(unlink_now = false) ⇒ Object
Shortcut for tempfile.close
.
59 60 61 |
# File 'lib/action_dispatch/http/upload.rb', line 59 def close(unlink_now = false) @tempfile.close(unlink_now) end |
#eof? ⇒ Boolean
Shortcut for tempfile.eof?
.
79 80 81 |
# File 'lib/action_dispatch/http/upload.rb', line 79 def eof? @tempfile.eof? end |
#open ⇒ Object
Shortcut for tempfile.open
.
54 55 56 |
# File 'lib/action_dispatch/http/upload.rb', line 54 def open @tempfile.open end |
#path ⇒ Object
Shortcut for tempfile.path
.
64 65 66 |
# File 'lib/action_dispatch/http/upload.rb', line 64 def path @tempfile.path end |
#read(length = nil, buffer = nil) ⇒ Object
Shortcut for tempfile.read
.
49 50 51 |
# File 'lib/action_dispatch/http/upload.rb', line 49 def read(length = nil, buffer = nil) @tempfile.read(length, buffer) end |
#rewind ⇒ Object
Shortcut for tempfile.rewind
.
69 70 71 |
# File 'lib/action_dispatch/http/upload.rb', line 69 def rewind @tempfile.rewind end |
#size ⇒ Object
Shortcut for tempfile.size
.
74 75 76 |
# File 'lib/action_dispatch/http/upload.rb', line 74 def size @tempfile.size end |