5

誰かがこれを理解するのを手伝ってくれることを願っています。画像の base64 文字列があります。

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

ember の createRecord と commit() を使用して送信したいと思います。

this.get('store').createRecord(Emb.Painting, {name: newName, image: newImage});

次に、それを Carrierwave の StringIO に変換して保存します。

StringIO.class_eval { def original_filename; "stringiohaxx.jpg"; end }
io = StringIO.new(Base64.decode64(params[:painting][:image]))
@painting =  Painting.create(:name => params[:painting][:name], :image => io )

画像が保存されます。画像は常に破損しています。base64 文字列を次のように分割する必要がありますか?

data: '/9j/..'
type: 'image/jpeg'

? どんな助けでも感謝します。

4

2 に答える 2

0

はい、その文字列は分割する必要があります。

var data = newImage.split(',');  
this.get('store').createRecord(Emb.Painting, {name: newName, image: data[1]});  

私はこれが最善の方法だとは思わない...

于 2013-04-30T20:47:10.570 に答える