diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2008-12-25 03:51:04 +0000 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2008-12-25 03:51:04 +0000 |
commit | e898f82a743063652aed802d99ea8b5deac2ec3c (patch) | |
tree | 5cfc968597bdf33bd4de15e81c71bf2923211d50 /actionpack/lib/action_controller/uploaded_file.rb | |
parent | 9c1e48eaea921efa67fbeed1ff1876dc710f8fd2 (diff) | |
download | rails-e898f82a743063652aed802d99ea8b5deac2ec3c.tar.gz rails-e898f82a743063652aed802d99ea8b5deac2ec3c.tar.bz2 rails-e898f82a743063652aed802d99ea8b5deac2ec3c.zip |
Move request parsing related code to ActionController::RequestParser
Diffstat (limited to 'actionpack/lib/action_controller/uploaded_file.rb')
-rw-r--r-- | actionpack/lib/action_controller/uploaded_file.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/actionpack/lib/action_controller/uploaded_file.rb b/actionpack/lib/action_controller/uploaded_file.rb new file mode 100644 index 0000000000..ea4845c68f --- /dev/null +++ b/actionpack/lib/action_controller/uploaded_file.rb @@ -0,0 +1,37 @@ +module ActionController + module UploadedFile + def self.included(base) + base.class_eval do + attr_accessor :original_path, :content_type + alias_method :local_path, :path + end + end + + # Take the basename of the upload's original filename. + # This handles the full Windows paths given by Internet Explorer + # (and perhaps other broken user agents) without affecting + # those which give the lone filename. + # The Windows regexp is adapted from Perl's File::Basename. + def original_filename + unless defined? @original_filename + @original_filename = + unless original_path.blank? + if original_path =~ /^(?:.*[:\\\/])?(.*)/m + $1 + else + File.basename original_path + end + end + end + @original_filename + end + end + + class UploadedStringIO < StringIO + include UploadedFile + end + + class UploadedTempfile < Tempfile + include UploadedFile + end +end |