Sha256: a19fdf7d523c9210983a44b4f9570fee4d703ba75c7cc27cb20a3bb5faa8ba2b
Contents?: true
Size: 1.14 KB
Versions: 2
Compression:
Stored size: 1.14 KB
Contents
module Kublog module XhrUpload module FileHelper protected # Gets the file received throug Rack Environment def received_file if env['rack.input'] make_tempfile(env['rack.input'], :filename => env['HTTP_X_FILE_NAME'], :type => env["CONTENT_TYPE"]) end end # Taken from rack. Follows the example of maca to create a TempFile # via XHR Request. Used to asynchronously upload images def make_tempfile(input, options = {}) tempfile = Tempfile.new('image-upload') tempfile.set_encoding(Encoding::BINARY) if tempfile.respond_to?(:set_encoding) tempfile.binmode buffer = "" while input.read(1024 * 4, buffer) entire_buffer_written_out = false while !entire_buffer_written_out written = tempfile.write(buffer) entire_buffer_written_out = written == Rack::Utils.bytesize(buffer) if !entire_buffer_written_out buffer.slice!(0 .. written - 1) end end end tempfile.rewind {:tempfile => tempfile}.merge(options) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
kublog-0.9.0 | lib/kublog/xhr_upload/file_helper.rb |
kublog-0.0.1.1 | lib/kublog/xhr_upload/file_helper.rb |