Laravel — использование поля blob postgre bytea

Я использую PostgreSQL для установки Laravel. Таблица имеет поле типа bytea, которое используется для хранения двоичных данных (содержимое файла в кодировке base64).

Когда я использую Eloquent для получения таблицы, я получаю переменную типа ресурса, возвращаемую в этом поле.

Как я могу получить это как строку?

$raw = Media::where('id','=',$id)->first();
$raw->file_data = base64_decode($raw->file_data);   // doesn't work

person Andy    schedule 04.07.2012    source источник


Ответы (2)


Поскольку автор этого вопроса не опубликовал подробности ответа, я опубликую здесь свои выводы.

Поскольку возвращаемое поле является дескриптором потока, вы можете использовать stream_get_contents для чтения значения в строку, вы можете затем использовать pg_unescape_bytea для получения фактического значения данных bytea. Наконец, используйте функцию htmlspecialchars, если вы хотите отобразить данные bytea в HTML.

Пример кода:

$my_bytea = stream_get_contents($resource);
$my_string = pg_unescape_bytea($my_bytea);
$html_data = htmlspecialchars($my_string);
person Community    schedule 03.11.2015

Ответ состоял в том, чтобы использовать stream_get_contents в потоке. дух.

person Andy    schedule 04.07.2012