0

我第一次尝试使用 Typhoeus 将文件上传到 Rails 应用程序,但我不知道如何将该文件变成我可以使用的东西。

上传完成类似于 Typheous 的示例:

Typhoeus.put(
  url,
  body: {
    title: "This should be the title",
    file: File.open(file_path, "r")
  }
)

在控制器中,request.body.string是这样的:

 "title=This%20should%20be%20the%20title&file=%5B%221-1381398552.zip%22%2C%20%22application%2Fzip%22%2C%20%22%2Fvagrant%2Fppc_reports%2Fspec%2Fdummy%2Ftmp%2F1381398547_qyforj%2F1-1381398552.zip%22%5D"

如何从正文中获取文件并将其保存为文件或临时文件以使用?

4

2 回答 2

0

你试过这个吗?我认为 StringIO 应该表现得像一个文件。

contents = params[:file].read

之后,您只需将其保存到另一个文件中。

File.open('/path/to/file', 'rw') do |f|
  f.write contents
end
于 2013-10-10T10:09:41.830 回答
0

PUT不默认为application/x-www-form-urlencoded(与 相比POST),您必须设置它:

Typhoeus.put(
  url,
  body: {
    title: "This should be the title",
    file: File.open(file_path, "r")
  },
  headers: { "Content-Type" => "application/x-www-form-urlencoded" }
)
于 2013-10-15T10:43:38.403 回答