В настоящее время я испытываю странную проблему, когда я конвертировал веб-приложение в ODBC с использованием PostgreSQL (из MySQL с PHP mysqli-connector).
Я заметил, что изображения, которые хранятся в виде 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}
Я надеюсь, что вы можете помочь.
Решением является длина данных в файлах odbc.ini. Если длина ограничена, слишком длинные строки base64 будут обрезаны. Просто нужно увеличить размер.
Других решений пока нет …