を、ファイルのアップロードを受け入れる::基本コード:は、私はこのシナトラを持っシナトラ
class Crush < Sinatra::Base
post '/upload' do
erb params.inspect
end
end
私はポストマンやファイルをアップロードするためのインタフェースを使用しています。だからform-data
というPOSTリクエストを送ります。要求の本文には、名前はhello
で、値は単純な文字列hey there
を含むファイルtest.txt
です。
私はparams.inspect
を行うと、私はこの長い文字列
{取得 "------ WebKitFormBoundaryocOEEr26iZGSe75n \ rを\ nContent-処分:フォームのデータを、名称" => "\" こんにちは\ ";ファイル名= \ "\\ \\" \\ \\ "\\" \\ "\\" \\ "\\" \\ "\\\"基本的に1つのキーと1つの値で長いです。ほとんどのSinatraチュートリアル(ファイルがフォームから受け入れられるところ)を読むと、Sinatraがparams[:file]
を使ってこれを処理する良い方法がありますが、ファイルがHTTP要求の本文からまっすぐに来ているようなことはありません。
私はモジュラーではない手法を試してみましたが、Sinatra::Base
という構文解析のミドルウェアがないと思っていましたが、同じ結果が得られました。
ここに何か不足していますか?私はこの長いハッシュの内容を取得するために自分のカスタムパーサを作成しなければなりませんか?それとも簡単な方法がありますか?