如何使用httparty上传视频文件

时间:2011-02-28 11:30:25

标签: ruby-on-rails-3 httparty

嗨我见过httparty,但我不知道如何实现有很多模型文件的例子,但是可以使用哪个参数来上传视频文件

4 个答案:

答案 0 :(得分:6)

HTTMultiParty通过发布多部分MIME文档来支持文件上传。它包装HTTParty,因此您以相同的方式使用它。对于该文件,只需提供一个File对象。自述文件中的示例:

require 'httmultiparty'
class SomeClient
  include HTTMultiParty
  base_uri 'http://localhost:3000'
end

response = SomeClient.post('/', :query => {
  :foo      => 'bar',
  :somefile => File.new('README.md')
})

答案 1 :(得分:1)

HTTParty似乎不支持文件上传(至少截至2009年):

Google群组有些人说它不受支持: http://groups.google.com/group/httparty-gem/browse_thread/thread/fe8a3af8c46e7c75

有关它的公开问题: https://github.com/jnunemaker/httparty/issues/77

答案 2 :(得分:0)

通过使用RestClient gem,我们可以轻松处理文件上传,但请确保安装rest-client gem。

我还附上了邮递员的示例请求的屏幕截图。

控制器中的代码如下所示,

  res = RestClient::Request.execute(
      method: :post,
      url: "http://www.your_url.com",
      payload: params,

      headers: {
          'Content-Type' => "multipart/form-data",
          Authorization: "some_key",
          :Accept => "*/*"
      }

  )

enter image description here

答案 3 :(得分:0)

以下是HTTParty中的多部分示例:

# If you are uploading file in params, multipart will used as content-type automatically

HTTParty.post(
  'http://localhost:3000/user',
  body: {
    name: 'Foo Bar',
    email: 'example@email.com',
    avatar: File.open('/full/path/to/avatar.jpg')
  }
)

现在,您可以按以下方式在控制器中访问上载的文件:

uploaded_io = params[:avatar]
File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'wb') do |file|
  file.write(uploaded_io.read)
end