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

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

概述我有旧服务和新服务,上面有图片.我想将图像从旧迁移到新的.为此我需要从我的旧服务中获取图像,然后将其发布到新的sinatra服务. 我能够以我想要使用NET :: HTTP的格式发布图像 url = URI.parse('http://0.0.0.0:9292/') File.open("./Belgium.png") do |jpg| req = Net::HTTP::Post::Mu 我有旧服务和新服务,上面有图片.我想将图像从旧迁移到新的.为此我需要从我的旧服务中获取图像,然后将其发布到新的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\"\r\nContent-Length: 28228\r\nContent-Type: image/jpeg\r\nContent-transfer-encoding: binary\r\n"},"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 :multipartendpayload = { :profile_pic => Faraday::Uploadio.new('avatar.jpg','image/jpeg') }conn.post 'http://0.0.0.0:9292/',payload
总结

以上是内存溢出为你收集整理的ruby-on-rails – 使用法拉第作为参数发布图像全部内容,希望文章能够帮你解决ruby-on-rails – 使用法拉第作为参数发布图像所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1283342.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存