加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 使用法拉第作为参数发布图像

发布时间:2020-12-17 02:44:11 所属栏目:百科 来源:网络整理
导读:我有旧服务和新服务,上面有图片.我想将图像从旧迁移到新的.为此我需要从我的旧服务中获取图像,然后将其发布到新的sinatra服务. 我能够以我想要使用NET :: HTTP的格式发布图像 url = URI.parse('http://0.0.0.0:9292/') File.open("./Belgium.png") do |jpg|
我有旧服务和新服务,上面有图片.我想将图像从旧迁移到新的.为此我需要从我的旧服务中获取图像,然后将其发布到新的sinatra服务.
我能够以我想要使用NET :: HTTP的格式发布图像

url = URI.parse('http://0.0.0.0:9292/')
  File.open("./Belgium.png") do |jpg|
   req = Net::HTTP::Post::Multipart.new url.path,{"image" => UploadIO.new(jpg,"image/jpeg","Belgium.jpg"),id:4234}
    res = Net::HTTP.start(url.host,url.port) do |http|
      http.request(req)
    end
  end

我在Sinatra服务上用post post方法得到的参数是

params = {"image"=>
  {:filename=>"Belgium.jpg",:type=>"image/jpeg",:name=>"image",:tempfile=> #<File:/var/folders/h7/f9cvygqs3lg78kwh24v8yzp80000gn/T/RackMultipart20120827-76057-1f3inkn>,:head=> "Content-Disposition: form-data; name="image";filename="Belgium.jpg"rnContent-Length: 28228rnContent-Type: image/jpegrnContent-Transfer-Encoding: binaryrn"},"id"=>"4234"}

但我无法用法拉第获得相同的结果.我尝试过使用类似的东西:

payload = { :profile_pic => Faraday::UploadIO.new('avatar.jpg','image/jpeg') }
Faraday.post 'http://0.0.0.0:9292/',payload

在我的服务中我得到这样的东西:
??????“#<’UploadIO:0x007fb950373de8>” 中一个东西.这不是我期望的服务.

我怎样才能获得与Net :: HTTP相同的行为.我认为它已经用中间件做了一些事情,我试过调整,但我仍然是一个新手.

解决方法

关于什么:

conn = Faraday.new(:url => 'http://0.0.0.0:9292' ) do |faraday|
  faraday.request :multipart
end
payload = { :profile_pic => Faraday::UploadIO.new('avatar.jpg','image/jpeg') }
conn.post 'http://0.0.0.0:9292/',payload

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读