Rails 3 application / octet-stream

时间:2011-06-09 09:40:12

标签: ruby-on-rails ruby-on-rails-3

我正在开发一个应用程序,我使用paperclip上传图像,然后在flash应用程序中操作图像并使用application / octet-stream返回到我的应用程序。问题是使用params无法获得闪存中的参数。我见过像

这样的例子
File.open(..,..) {|f| f.write(request.body) }

但是当我这样做时,文件会被损坏一些。

如何在rails 3中处理此问题?

1 个答案:

答案 0 :(得分:2)

确保请求参数已经命中Rails应用程序后,您可能希望确保没有解析问题。尝试在控制器的操作中添加这些行:

def update # (or whatever)
  logger.debug "params: #{params.inspect}"
  # I hope you do not test this using very large files ;)
  logger.debug "request.raw_post: #{request.raw_post.inspect}"
  # ...
end

也许变量名以某种方式改变了?也许有些东西过多地逃过了参数字符串?

另外,您已经说过要保存request body的文件已损坏。究竟是怎么回事?

request.body对象不需要是String。例如,它可能是一个StringIO,因此您可能需要输入:

File.open(..,..) {|f| f.write(request.body.read) }