Sha256: 0fcb70557cb397c61efb7379f3c3fb68f2e5102e0d256a8babd3a62aaeda1a51

Contents?: true

Size: 1.31 KB

Versions: 31

Compression:

Stored size: 1.31 KB

Contents

begin
    require 'ftools'
rescue LoadError
end

module Spider; module Forms
    
    class FileInput < Input
        tag 'file'
        is_attr_accessor :save_path, :type => String, :default => lambda{ Spider.paths[:data]+'/uploaded_files' }
        
        def needs_multipart?
            true
        end
        
        def prepare
            raise "No save path defined" unless @save_path
            raise "Save path #{@save_path} is not a directory" unless File.directory?(@save_path)
            super
        end
        
        
        def prepare_value(val)
            return nil if !val || val.empty?
            if val['file'] && !val['file'].is_a?(String)
                dest_path = @save_path+'/'+val['file'].filename
                File.copy(val['file'].path, dest_path)
                return dest_path
            elsif val['clear']
                self.value = nil
                return
            end
            return @value
        end
        
        __.action
        def view_file
            raise NotFound.new(@value.to_s) unless @value && @value.file?
            @response.headers['Content-Description'] = 'File Transfer'
            @response.headers['Content-Disposition'] = "attachment; filename=\"#{@value.basename}\""
            output_static(@value.to_s)
        end
        
    end
    
end; end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
spiderfw-0.6.21 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.20 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.19 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.18 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.17 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.16 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.15 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.14 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.13 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.12 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.11 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.10 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.9 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.8 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.7 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.6 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.5 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.4 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.3 apps/core/forms/widgets/inputs/file_input/file_input.rb
spiderfw-0.6.2 apps/core/forms/widgets/inputs/file_input/file_input.rb