我有一个使用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开头”。
你有解决方案吗?
答案 0 :(得分:1)
解决方案是:
f.write Base64.decode64(data).force_encoding('UTF-8')
答案 1 :(得分:0)
您需要先解码数据。
尝试:
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
答案 2 :(得分:0)
对我来说,以下是解决方案: (注意打开文件时的二进制写入选项)!
File.open("#{Rails.root}/public/images/#{self.id}.jpg", "wb") do |f|
f.write Base64.decode64(data)
end