Rails 上传文件时 controller 丢失 param

snowhs · 2013年02月08日 · 最后由 hooopo 回复于 2013年02月08日 · 2173 次阅读

有一个 action,以一个随机文件反复上传做测试。 有的时候会成功,有的时候会发现 params 里只有 controller 和 action 两组 key-value,别的参数,包括传上来的文件,全都没了。 正常情况下 info 级别的 log 里会给出 params。而失败的请求,是没有 params 的 log 的,action 内 log 到的 params 则只有 controller 和 action。

在浏览器的开发工具里观察了成功的请求和失败的请求的 request payload,没发现显著区别。

  • 尝试了各种类型、各种文件名的文件,都会发生这个情况。
  • rails 跑在 mac 上和跑在 ubuntu 上,都会发生这个情况。

如果有人遇到过类似的情况,希望能补充线索、提供经验。谢谢。

没代码怎么提供线索啊

rails app 前面有 web server 吗?Nginx 等默认有个文件大小限制,会不会是这个引起的?

#2 楼 @ashchan 开发环境有 pow,生产环境有 nginx。因为“一个随机文件反复上传”能够有时成功有时失败,所以排除了这个可能。

#1 楼 @hooopo 没有提供代码是因为整个事情里,被执行的代码,只有一行是我写的,也就是 action 内第一行的logger.warn params,所以我不知道该提供哪些代码。

PS: 如果 routes 也算的话 post '/upload/attachments' => 'home#upload_attachments'

#4 楼 @snowhs 你应该做一个 demo 重现这个 bug。要不别人很难帮助到你。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号