читать содержимое PDF из BLOB в MySQL - PullRequest
0 голосов
/ 29 марта 2019

Я разработал систему, которая анализирует и сохраняет электронные письма в базе данных MySQL.Я сохраняю вложения как массив объектов в JSON в поле MEDIUMBLOB.Все работает почти так, как ожидалось.По крайней мере, при сохранении.Когда я пытаюсь прочитать вложения, я получаю только изображения, но не файл PDF.

В BLOB-файле содержится следующее «фиктивное» содержимое:

[
{
"filename":"img1.png", "ext":"png", "type": "image/png", "size":4096, 
"dispo":"inline", "cid":"123@abc", "content":"base64_encoded binary- 
data"
},
{
"filename":"pdf1.pdf", "ext":"pdf", "type": "application/pdf", 
"size":4096, "dispo":"attachment", "cid":null, 
"content":"base64_encoded binary-data"
}
]

Вложения записываются какследует: json_encode ($ attachmentsDB, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT).

Я отлаживал, но каким-то образом, когда я выбираю данные BLOB из БД - в этом случае - последний элемент = pdf-файл не возвращается.Только предыдущие файлы изображений.

Когда я жестко кодирую данные и пробую свой код, все работает отлично.Данные также не усечены.

Кажется, это не проблема с памятью

Если кто-нибудь может дать мне подсказку, пожалуйста ...?

Большое спасибо заранее

Ответы [ 2 ]

0 голосов
/ 30 марта 2019

большое спасибо @Shadow! Я изменил поле на LONGBLOB, и теперь, кажется, работает нормально! : -)

0 голосов
/ 29 марта 2019

Хранение больших данных в базе данных - плохая идея, потому что в большинстве случаев это замедлит работу вашего сервера. вместо этого вы можете скопировать свой pdf в папку с помощью php-скрипта, а затем сохранить его ссылки в базе данных sql ...

Теперь вы можете легко читать ваши PDF-файлы из базы данных.

Или вы можете проверить это

PHP: загрузка PDF в базу данных SQL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...