diff options
Diffstat (limited to 'examples/rails_app-2.3.4/app/controllers/files_controller.rb')
-rw-r--r-- | examples/rails_app-2.3.4/app/controllers/files_controller.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/examples/rails_app-2.3.4/app/controllers/files_controller.rb b/examples/rails_app-2.3.4/app/controllers/files_controller.rb new file mode 100644 index 0000000..3d82107 --- /dev/null +++ b/examples/rails_app-2.3.4/app/controllers/files_controller.rb @@ -0,0 +1,39 @@ +require 'digest/sha1' + +class FilesController < ApplicationController + defined?($upr) or before_filter do + # grab the backend in case we forget to set it (or if we're using DRb) + defined?($upr) or ObjectSpace.each_object(Upr::InputWrapper) do |x| + $upr ||= x.backend + end + end + + def index + end + + def status + tmp = $upr.read(params[:upload_id]).inspect + render :text => "#{Rack::Utils.escape_html(tmp)}\n" + end + + def progress + render :update do |page| + status = $upr.read(params[:upload_id]) and + page.upload_progress.update(status.length, status.seen) + end + end + + def upload + file = params[:data] + digest = Digest::SHA1.new + if buf = file.read(16384) + begin + digest.update(buf) + end while file.read(16384, buf) + end + render :text => "params: #{Rack::Utils.escape_html(params.inspect)}.\n" \ + "sha1: #{digest.hexdigest}\n" \ + '<script type="text/javascript">' \ + 'window.parent.UploadProgress.finish();</script>' + end +end |