在Ruby on Rails上载文件

时间:2008-09-22 17:48:44

标签: ruby-on-rails ruby file-upload

我有一个Web应用程序需要从用户上传文件并将其上传到远程服务器。我可以通过file_field从用户到服务器的输入很好,但似乎无法确定从服务器上传到远程的下一步。 Net :: HTTP没有开箱即用的多部分表单,我也找不到另一个好的解决方案。我需要一些能让我从用户那里得到的东西 - >服务器 - >远程而不是去用户 - >远程。有没有人成功地做过这个?

2 个答案:

答案 0 :(得分:2)

我相信attachment_fu插件允许这样做:

http://svn.techno-weenie.net/projects/plugins/attachment_fu/

答案 1 :(得分:1)

令人惊讶的是,多部分表单帖子确实不在Net:HTTP中。 comp.lang.ruby中的thread似乎有一些代码片段,您可能会发现这些代码对执行必要的编码很有用:

BOUNDARY = "AaB03x"

def encode_multipartformdata(parameters = {})
  ret = String.new
  parameters.each do |key, value|
    unless value.empty?
      ret << "\r\n--" << BOUNDARY << "\r\n"
      ret << "Content-Disposition: form-data; name=\"#{key}\"\r\n\r\n"
      ret << value
    end
  end
  ret << "\r\n--" << BOUNDARY << "--\r\n"
end