我正在使用Sinatra和Thin。
当尝试使用多部分数据访问POST请求的内容时,我看不到任何方便的方法来访问它,虽然看起来我可以访问原始主体。
我有什么遗失的吗?有没有方便的方法来做到这一点,还是我必须自己解析数据?
request.env['rack.request.form_hash']
给出一个空哈希。
将正文(request.body.read()
)转储到stdout时,它看起来像这样:
--KoZIhvcNAQcB
Content-Disposition: form-data; filename="1"
X-compId: 1
Content-Length: 1024
QeQL4k8RPBQVrP2u8Zf6Ie82labdA_
d7s FgvwSQvkP6e0TwaWWCfoHWbaP6
... (some lines omitted)
--KoZIhvcNAQcB--
我也看到它不是一个分块转移编码问题(我读过Thin有问题);未设置Transfer-Encoding标头。 但至于我的问题,Sinatra或Rack是否在API中提供了用于访问多部分细节的内容?
UPDATE :执行一些阅读后,我看到多部分数据应该在请求参数中可见。结果,我在GitHub上记录了一个问题。如果我得到解决,我会在这里发布答案。 https://github.com/rack/rack/issues/695