aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/http/request.rb
diff options
context:
space:
mode:
authorJoshua Peek <josh@joshpeek.com>2009-04-14 15:56:13 -0500
committerJoshua Peek <josh@joshpeek.com>2009-04-14 15:56:13 -0500
commit11d4bfb18cb679b41e7d0b1b34b6e1a453de3591 (patch)
treed4cfd9f52cf5de2b676cb55a517df310d9606d95 /actionpack/lib/action_dispatch/http/request.rb
parent4839fe2e8201835a53ab6c75528a613e8bf25bfb (diff)
downloadrails-11d4bfb18cb679b41e7d0b1b34b6e1a453de3591.tar.gz
rails-11d4bfb18cb679b41e7d0b1b34b6e1a453de3591.tar.bz2
rails-11d4bfb18cb679b41e7d0b1b34b6e1a453de3591.zip
We aren't using UploadedStringIO and UploadedTempfile anymore
Diffstat (limited to 'actionpack/lib/action_dispatch/http/request.rb')
-rwxr-xr-xactionpack/lib/action_dispatch/http/request.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/actionpack/lib/action_dispatch/http/request.rb b/actionpack/lib/action_dispatch/http/request.rb
index 7d47a1566e..523ab32b35 100755
--- a/actionpack/lib/action_dispatch/http/request.rb
+++ b/actionpack/lib/action_dispatch/http/request.rb
@@ -477,6 +477,34 @@ EOM
!(host.nil? || /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.match(host))
end
+ module UploadedFile
+ def self.extended(object)
+ object.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
+
# Convert nested Hashs to HashWithIndifferentAccess and replace
# file upload hashs with UploadedFile objects
def normalize_parameters(value)