3

私は、canvas要素をbase64でエンコードされた画像として保存するカスタム製品コンフィギュレーターを作成しました。ブラウザで画像を画像srcとしてエコーすると、正常に機能します。

したがって、このようなものは機能します:

$base64Image = $_POST['dataUrl'];
echo '<img src="'.$base64Image.'" />';

私の問題は、codeigniterがこのbase64イメージsrcをセッションに追加しないことです。おそらく、サイズが大きすぎるためです。私は人々がサーバーに画像を書き込むために使用したいくつかの方法を試しましたが、それらはすべてエラーをスローします。このbase64文字列をimages/customフォルダーの「myimage.png」のようなサーバー上の画像に書き込む方法を知っている人はいますか?

どんな助けでも大歓迎です。

4

2 に答える 2

15

使用することもできます

$decoded=base64_decode($base64Image);
file_put_contents('newImage.JPG',$decoded);

参照リンク: http: //j-query.blogspot.in/2011/02/save-base64-encoded-canvas-image-to-png.html

于 2012-10-31T17:25:47.033 に答える
2

tempnam()を使用して、スクリプトで書き込み可能なディレクトリ内の一意のファイル名を取得します。セッション変数「thisUsersTempFile」をそのファイル名にマップできます。

または、一時的でない場合は、関連付けを別の場所に保存できます。tmpファイルをクリーンアップする必要がある場合は、セッションの破棄をフックすることはできないと思うので、おそらくそれを行う必要があります。既存のセッションをポーリングして、破棄されたセッションに関連付けられているtmpfileを削除できます。そのためにcronジョブを使用できます。

于 2012-10-31T17:26:12.280 に答える