我怎样才能正确处理这个发布的文本文件?
How can I correctly handle this POSTed text file?
我在处理 ruby 中发布的文件时遇到了最困难的时间,并且正在使用邮递员发送请求。请求的 headers 是:
Content-Type multipart/form-data
body 看起来像:
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
的输出?
我相信您可以使用 params[:file][:filename]
访问文件名,并通过 params[:file][:tempfile]
访问 TempFile。 TempFile 将允许您对其进行操作,就好像它实际上是一个 File 对象一样,因此您可以通过 read
方法(例如 params[:file][:tempfile].read
)访问内容。
您的调用 request.body
已经是一个字符串,但它是请求的正文,而不是文件附件本身。附件作为参数传递,在收到请求时将保存为临时文件。
post '/' do
request.body.rewind
file_attachment_contents = request.params[:file][:tempfile].read
puts file_attachment_contents
end
我在处理 ruby 中发布的文件时遇到了最困难的时间,并且正在使用邮递员发送请求。请求的 headers 是:
Content-Type multipart/form-data
body 看起来像:
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
的输出?
我相信您可以使用 params[:file][:filename]
访问文件名,并通过 params[:file][:tempfile]
访问 TempFile。 TempFile 将允许您对其进行操作,就好像它实际上是一个 File 对象一样,因此您可以通过 read
方法(例如 params[:file][:tempfile].read
)访问内容。
您的调用 request.body
已经是一个字符串,但它是请求的正文,而不是文件附件本身。附件作为参数传递,在收到请求时将保存为临时文件。
post '/' do
request.body.rewind
file_attachment_contents = request.params[:file][:tempfile].read
puts file_attachment_contents
end