Upload files using Faraday

核能气质少年 提交于 2019-11-29 07:43:44

It turns out that I needed to specify an adapter. Here's the code that ended up working.

conn = Faraday.new('http://myapi') do |f|
  f.request :multipart
  f.request :url_encoded
  f.adapter :net_http # This is what ended up making it work
end

payload = { :file => Faraday::UploadIO.new('...', 'image/jpeg') }

conn.post('/', payload)

Something like this resolved my problem:

conn = Faraday.new(url: URL) do |faraday|
  faraday.request :multipart #make sure this is set before url_encoded
  faraday.request :url_encoded
  faraday.adapter Faraday.default_adapter
end

file = Faraday::UploadIO.new(
  params[:image].tempfile.path,
  params[:image].content_type,
  params[:image].original_filename
)

payload = { :file => file }

conn.post('/', payload)
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!