在Ruby on Rails中上传文件

时间:2020-03-06 14:33:12  来源:igfitidea点击:

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

解决方案

出乎意料的是,多部分表单发布确实不在Net:HTTP中。来自comp.lang.ruby的线程似乎包含一段代码,我们可能会发现对执行必要的编码很有用:

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

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

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