2012-05-07 10 views
0

単純なファイルアップロードページを実行しようとしていますが、「nilをハッシュに変換できません」という問題があります(file:request.rb location: 221)。これは、WindowsとUbuntuで発生します。 Ruby 1.9.3、Sinatra 1.3.2。私も気づいているのは、POSTデータは明らかに空であり、サイズ・ファイルに関係なく、リクエストをアップロードしようとすると、常に70k未満です。Sinatraはマルチパートフォームの投稿でnilをハッシュに変換できません

ハンドラはあまりやっていません。

get "/upload" do 
    erb :upload 
end  


post '/upload' do 
    tempfile = params['file'][:tempfile] 
    filename = params['file'][:filename] 
    File.copy(tempfile.path, "./files/#{filename}") 
    redirect '/' 
end 

フォームは次のようになります。あなたはあなたのファイル入力にname属性を追加する必要が

<div id="bodydiv"> 
    <h1>file upload page</h1> 
    File to upload: 

    <form method="post" action="" enctype="multipart/form-data"> 
     <input type="file" id="file" /> 
     <input type="hidden" value="tokenstuff" id="hiddenThing" /> 
     <input type="submit" value="upload" id="commit" /> 
    </form> 

    </div> 

答えて

2


誰かがこれを説明できるのであれば、私はなぜそうは思わないのですか?ありがとう。

+0

* facepalm *ありがとうございました。 – Doobi

関連する問題