ファイルアップロードは、以下が参考になります。
http://d.hatena.ne.jp/yamamucho/20100620/1277003595
抜粋かつちょっと改造ですが、こんな感じでfileという名前のパラメータでファイルを受け取るとします。
require 'rubygems' require 'sinatra' post '/upload' do if params[:file] content_type params[:file][:type] f = params[:file][:tempfile] f.read f.size end end
このようなアプリのテストをする場合は、以下のような感じです。 rspecでテストする場合は、以下のような感じです。
require 'rubygems' it "アップロードしたらファイルの中身が帰ってくる" do upload_file = File.dirname(__FILE__) + "/foo.txt" post_file = Rack::Test::UploadedFile.new(upload_file) post "/upload", "file" => post_file last_response.body.should == "foo" end
0 件のコメント:
コメントを投稿