如何正确处理此POSTed文本文件?

时间:2018-04-27 18:38:37

标签: ruby rest api multipartform-data

我最难处理在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的输出?

2 个答案:

答案 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