SQL Server — MSSQL двоичный PDF с переполнением стека

Я пару дней выдергивал свои волосы из-за проблемы, которая у меня возникла.

Попытка прочитать PDF-файл, который хранится в виде данных двоичного двоичного объекта в поле базы данных SQL (не mysql).

Если я использую такую ​​программу, как Navicat, и сохраняю необработанные данные больших двоичных объектов непосредственно в формате PDF, файл работает.

Когда я пытаюсь прочитать данные через PHP из запроса mssql и создать файл PDF —

$file = "file.pdf";
$data = $row['FileData'];
file_put_contents($file, $data);

Он создает PDF, однако он поврежден и не открывается.

Мне трудно точно знать, в каком формате хранятся данные, как в базе данных. Когда я просматриваю данные BLOB в Navicat, он выглядит так:

%PDF-1.4
%Çì¢
5 0 obj
<</Length 6 0 R/Filter /FlateDecode>>
stream
xœÅY[o·F_÷Wð%èlðÞûX¸-8èCÐy-Éjt±´qÚüŒö÷#‡Crv¹Y§ÞÔ`qÈÃÃsùÎ…Ô“#    ±ñglïW_çÄÍn•¦ÅwɃç›ÕÓÊ*þKíx{/þxAR‹‹ë•CZN\I8ŠßF8FcI\ܯ†ß­/þ±b3jlx?â?    ¶rÔÊ‚áÅÛ¼}3Ïm2£y¡·ÿO«WÐB
'ÉŽÖ‰û•Æ—Ï»é[¢¸$”•ViGÅ^<_­®¿\Ù‘øçÊ‹oAûÍj£a\’¡ÙBÉÞ¿´q×ë$TÆqRúI<–3weÆúežwÕ
9q–a›¢W¯~¢«ÕHŒ^£l\Ìÿê7–‹H^–

Трудно показать вам, как выглядят необработанные данные в базе данных, поскольку двоичные данные, как я считаю, не могут быть просмотрены должным образом, и то, что вы видите, представляет собой лишь интерпретацию того, что это на самом деле.

Любая помощь будет оценена.
Спасибо.

1

Решение

Решил проблему, добавив следующее в мой файл .htaccess

php_value mssql.textlimit 10000000
php_value mssql.textsize 10000000

По сути, он записывал файлы, но останавливал 63 КБ (64 512 байт) в файле, поэтому увеличение этого предела позволило сценарию завершить запись оставшейся части файла.

Надеюсь, что это поможет кому-то еще с той же проблемой.

1

Другие решения

Вы пробовали это?

select hex(pdf) from table;

Используйте приведенный выше запрос и используйте file_put_contents(); сохранить ваше содержимое в файл.

PHP делает большую работу, обеспечивая простые преобразования между binary to hex а также hex to binary,

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector