我最难处理在ruby中发布的文件,并使用邮递员发送请求。请求的标头是:
Content-Type multipart/form-data
身体看起来像:
file crazyfile.txt
在我的Sinartra服务器中,我正在执行以下操作:
post '/' do
request.body.rewind
contents = request.body.read.to_s
puts contents
end
输出如下:
---------499771616322077848081915
Content-Disposition: form-data; name="file"; filename="crazyfile.txt"
Content-Type: text/plain
holy moly
---------499771616322077848081915
如何获得仅holy moly
的输出?
答案 0 :(得分:2)
我相信您可以使用read
访问文件名,并通过params[:file][:tempfile].read
访问TempFile。 TempFile将允许您对其进行操作,就像它实际上是一个File对象一样,因此您可以通过{{1}}方法访问内容(例如{{1}})。
答案 1 :(得分:0)
您的呼叫request.body
已经是字符串但是请求的正文,而不是文件附件本身。附件作为参数传递,当收到请求时,该参数将保存为临时文件。
post '/' do
request.body.rewind
file_attachment_contents = request.params[:file][:tempfile].read
puts file_attachment_contents
end