backbone.js 使用Rails从JSON上传图像

d4so4syb  于 2022-11-10  发布在  其他
关注(0)|答案(3)|浏览(123)

我有一个用PhoneGap和Backbone创建的应用程序。我以JSon的身份上传一个文件,我的服务器接收到如下数据:

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/...

我尝试这样写文件:

File.open("#{Rails.root}/public/images/#{self.id}.jpg", "w+") do |f|
  f.write(data)
end

它不工作,我不知道该怎么办。当我尝试打开文件时,我看到以下消息“不是JPEG文件:以0x64 0x61”开头。
你有办法吗?

u5rb5r59

u5rb5r591#

解决办法是这样的:

f.write Base64.decode64(data).force_encoding('UTF-8')
pb3s4cty

pb3s4cty2#

您需要首先解码数据。
尝试:

File.open("#{Rails.root}/public/images/#{self.id}.jpg", "w+") do |f|
  decoded_data = Base64.decode64(data)
  image_data = StringIO.new(decoded_data)
  f.write(image_data)
end
j13ufse2

j13ufse23#

对我来说,以下是解决方案:(打开文件时,请注意二进制写入选项)!

File.open("#{Rails.root}/public/images/#{self.id}.jpg", "wb") do |f|
   f.write Base64.decode64(data)
end

相关问题