Есть база, формат записей:
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 ?