Задать вопрос
Le_Traceur_Snork
@Le_Traceur_Snork
PHP-программист | Wordpress

Как считать BLOB из PostgreSQL через PDO?

Есть база, формат записей:
id записи || sha1 || BLOB-содержимое || имя || размер || id пользователя

Попытка исполнить код:

$query = 'SELECT * FROM "table_name" WHERE "fUserId"=:userid';
$result = $DB -> prepare($query);
$result -> execute(array(
    ':userid' => $_REQUEST['userId']
));
$result -> bindColumn(3, $file['fContent'], PDO::PARAM_LOB);
$result -> bindColumn(4, $file['fName'], PDO::PARAM_STR);
$result -> bindColumn(5, $file['fSize'], PDO::PARAM_INT);
$result -> fetch(PDO::FETCH_BOUND);

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $file['fName']);
header('Content-Transfer-Encoding: "binary"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . $file['fSize']);

fpassthru($file['fContent']);

Оканчивается тем, что на скачку отдаётся файл с содержимым вида: "x255044462d312e340a25e2e3cfd30a37392030206f626a0a3c3c2f445" - т.е. бинарник приводится в
hex, а потом посимвольно в строку. Какой конкретно заголовок/заголовки мешают отдавать файл в нормальном виде .pdf ?
  • Вопрос задан
  • 410 просмотров
Подписаться 2 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Le_Traceur_Snork
@Le_Traceur_Snork Автор вопроса
PHP-программист | Wordpress
Нашёл ответ.
Решением было сделать
$DB -> prepare("SET bytea_output=escape") -> execute();

Перед началом СЕЛЕКТа
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽