文件上傳(沒有形式)我有這個西納特拉:: Base的代碼:接受在西納特拉
class Crush < Sinatra::Base
post '/upload' do
erb params.inspect
end
end
我使用郵差及其接口上傳文件。所以我發送POST請求form-data
,其中在請求的主體名稱是hello
和值是一個文件test.txt
其中只包含一個簡單的字符串hey there
。
當我做params.inspect
我得到這個長字符串
{ 「------ WebKitFormBoundaryocOEEr26iZGSe75n \ r \ nContent處置:表格數據;名稱」=> 「\」 你好\「文件名= \「test.txt \」\ r \ nContent-Type:text/plain \ r \ n \ r \ nhey there \ r \ n ------ WebKitFormBoundaryocOEEr26iZGSe75n - \ r \ n「}
所以基本上只有一個關鍵和一個單一的值。閱讀大多數Sinatra教程(從表單接受文件的地方),Sinatra使用params[:file]
處理這個問題的方法很好,但是當文件直接來自HTTP請求的主體時,似乎並不是這種情況。
我試過一個非模塊化的方法,你也想Sinatra::Base
,認爲它是解析中間件丟失的一些東西,但得到了同樣的結果。
有什麼我在這裏失蹤?我必須去製作自己的自定義分析器來獲取這個長散列的內容嗎?還是有更簡單的方法?