Sha256: 8ac2491d57beb6577116071fe3ff0a93f1ba508ed786031a382ec645b3cc45ab
Contents?: true
Size: 1.48 KB
Versions: 3
Compression:
Stored size: 1.48 KB
Contents
require 'active_support/core_ext/object/blank' module ActionDispatch module Http module UploadedFile def self.extended(object) object.class_eval do attr_accessor :original_path, :content_type alias_method :local_path, :path if method_defined?(: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 module Upload # Convert nested Hashs to HashWithIndifferentAccess and replace # file upload hashs with UploadedFile objects def normalize_parameters(value) if Hash === value && value.has_key?(:tempfile) upload = value[:tempfile] upload.extend(UploadedFile) upload.original_path = value[:filename] upload.content_type = value[:type] upload else super end end private :normalize_parameters end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
actionpack-3.0.0.beta4 | lib/action_dispatch/http/upload.rb |
actionpack-3.0.0.beta3 | lib/action_dispatch/http/upload.rb |
actionpack-3.0.0.beta2 | lib/action_dispatch/http/upload.rb |