2016-05-02 12 views
0

WebアプリケーションをPostgreSQLを使用してODBCに変換している間に、私は現在奇妙な問題を抱えています。HTML/PHP/ODBC/PGSQL Base64画像が完全に表示されない

私は、PostgreSQLデータベースにbyteaとして保存され、PHPのbase64関数にスローされた画像は正しく表示されないことに気付きました。いくつかの点では、それは数行後に切断されます。これは、データベースに保存されているすべてのbyteaの画像データを使用しているため、ロゴと署名用に用意されています。

ブラウザのインス​​ペクタでimgタグを調べると、(少なくともChromeでは)その画像のデータが不足していることがわかります。私はあなたが役立つことを願っ

$clients[$i]['logo'] = base64_encode($clients[$i]['image']); 

$clients[$i]['image'] = this is the bytea in the database and 

$clients[$i]['logo'] = this is the base64 String that I display in a Smarty template like this: data:image/png;base64,{$client.logo} 

:私は何

SELECT * FROM tableとBASE64のようにforループエンコードの画像です。

+0

関連するPHPコードを教えてください。例えば: 'bytea'フィールドに値を挿入するコード。値を取得してそれを '$ clients [$ i] ['image']'に配置するコードです。また、このPHPマニュアルページの注釈をチェックしましたか? http://php.net/manual/en/function.pg-escape-bytea.php – IMSoP

+0

[tag:smarty]タグを付けてタグ付けすることはできません[tag:postgresql]テンプレートロジック。 – IMSoP

+0

ありがとうございます。私は監視ツールなのでデータベースに書き込んでいません。反対側は別の会社によって開発されています。しかし、私は最近、php.iniの設定 - > odbc.defaultlrl = 65536が約4xxxに設定されているという解決策を発見しました。 –

答えて

0

解決策は、odbc.iniファイル内のデータの長さです。長さが制限されていると、長すぎるbase64文字列は切り捨てられます。ちょうどサイズを大きくする必要があった。

関連する問題