2011-12-19 9 views
2

2時間前に、私はhtml5ファイルapiとcoldfusionの間で、フォーム属性を使用してファイルapiによって作成されたDataUrlを渡し、coldfusionに画像ファイルを書き込ませることができますサーバーに送信します。coldfusionはbase64イメージのデコードを拒否します

これは正常に機能しました。

しかし、私はこれらのbase64文字列のデコードを拒否しています。私はすでに他のデコーダのbase64文字列をテストしており、画像を正しく表示しています。私はコードに何も変更していない。だから誰でもここで何が起こっているか教えてもらえますか?

<cfimage source="#attributes.image#" action="write" destination="../images/new_image.png" isBase64="yes" overwrite="true"> 

編集12分の20:私は仕事で私のコンピュータをオンにするとき、それは再び仕事を始め 今日。昨日何が起こったのかはまだ分かりません。 Coldfusionが返すエラーは、 'ファイルがbase64でエンコードされていないように見えますが、それは絶対にありました。私がcfimageタグに渡したbase64文字列には、あなたの説明どおりのヘッダーが含まれていました。

+1

ない非常に十分な情報。 a)あなたが得た正確なエラーメッセージと、b)#attributes.image#の物理的な値が(このタグ呼び出しの直前にcfabortを使って画面にダンプし、この質問の説明に追加する) –

答えて

2

<cfimage>タグをスキップして、<cffile>タグを使用すると、正確にそのまま保存することができます。 <cfimage>は、一連のオーバーヘッドを追加し、画像を保存する前に変更する予定がある場合にのみ便利です。

例:また

<cffile action="write" file="C:\temp\test-image.jpg" output="#binaryDecode(base64data)#" addnewline="no"> 

してみてください...

<cfset myImage = imageReadBase64(base64data)> 
<cfimage action="write" source="#myImage#" destination="C:\temp\test-image.jpg"> 

は、あなたのbase64文字列はヘッダを持っていますか?

例えば、文字列の先頭に"data:image/jpg;base64,..."

メモリから、imageReadBase64()はヘッダーの有無にかかわらずbase64文字列をサポートします。まだのオフに行くための

http://www.cfquickdocs.com/cf9/#BinaryDecode

http://www.cfquickdocs.com/cf9/#ImageReadBase64

関連する問題