0

当我使用 PostgreSQL(来自 MySQL 和 PHP mysqli-connector)将 Web 应用程序转换为 ODBC 时,我目前遇到了一个奇怪的问题。

我注意到存储bytea在 PostgreSQL 数据库中并放入 PHP 的 base64 函数的图像没有正确显示。在某些时候,它在几行后被切断。这个截断bytea是存储在我们数据库中的所有图像数据,我们有用于徽标和签名的数据。

如果您使用浏览器的检查器检查 img 标签,您会看到(至少在 Chrome 中)该图像丢失了很多数据。

我所做的是一个SELECT * FROM table然后在for循环中将图像编码为base64:

$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}

我希望你能帮忙。

4

1 回答 1

0

解决方案是 odbc.ini 文件中的数据长度。如果长度有限,过长的base64字符串会被截掉。只是需要增加尺寸。

于 2016-10-20T11:21:55.633 回答