gpt4 book ai didi

ruby-on-rails - 在 Ruby/Rails 上发布带有文件内容的 JSON

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:38 32 4
gpt4 key购买 nike

有谁知道如何将带有附加文件的 JSON 发布到 Rails 服务器?内容会被base64编码吗?多部分?老实说,我不知道,也没有真正在这里找到任何帮助。想法是让客户端将 JSON 发布到附加文件的 Rails API,以及让 Rails(带有回形针会是完美的)获取 JSON 并正确保存文件。提前致谢

最佳答案

这是我解决这个问题的方法。首先,我创建了一个 rake 任务来上传 json 内容中的文件:

desc "Tests JSON uploads with attached files on multipart formats"
task :picture => :environment do
file = File.open(Rails.root.join('lib', 'assets', 'photo.jpg'))

data = {title: "Something", description: "Else", file_content: Base64.encode64(file.read)}.to_json
req = Net::HTTP::Post.new("/users.json", {"Content-Type" => "application/json", 'Accept' => '*/*'})
req.body = data

response = Net::HTTP.new("localhost", "3000").start {|http| http.request(req) }
puts response.body
end

然后在我的 Rails 应用程序的 Controller /模型上获取它,如下所示:

params[:user] = JSON.parse(request.body.read)

...

class User < ActiveRecord::Base
...

has_attached_file :picture, formats: {medium: "300x300#", thumb: "100#100"}


def file_content=(c)
filename = "#{Time.now.to_f.to_s.gsub('.', '_')}.jpg"
File.open("/tmp/#{filename}", 'wb') {|f| f.write(Base64.decode64(c).strip) }
self.picture = File.open("/tmp/#{filename}", 'r')
end
end

关于ruby-on-rails - 在 Ruby/Rails 上发布带有文件内容的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14469680/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com