about summary refs log tree commit homepage
path: root/examples/rails_app-2.3.4/app/controllers/files_controller.rb
diff options
context:
space:
mode:
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.rb39
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