1

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ファイルではありません:0x640x61で始まります」というメッセージが表示されます。

解決策はありますか?

4

3 に答える 3

1

解決策はこれでした:

f.write Base64.decode64(data).force_encoding('UTF-8') 
于 2012-10-18T10:04:00.150 に答える
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
于 2012-10-16T04:58:06.053 に答える
0

私にとって、次の解決策がありました:(ファイルを開くときのバイナリ書き込みオプションに注意してください)!

File.open("#{Rails.root}/public/images/#{self.id}.jpg", "wb") do |f|
   f.write Base64.decode64(data)
end
于 2013-05-29T11:50:51.667 に答える