Вставьте / сохраните PDF-файл, созданный с использованием FPDF, в базу данных - PullRequest
0 голосов
/ 07 апреля 2020

Использование библиотеки fpdf для генерации файла PDF и вставки файла в базу данных.

Я использую следующий код:

$content = $pdf->Output($pname.'', 'S');

$sql = "INSERT into data(name) values('".addslashes($content)."')";

if ($conn->query($sql) === TRUE) {
    echo "success";

} else {
    echo "Error: ";
}

$conn->close();

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

Как мне это исправить и сохранить мой файл в базе данных с расширением .pdf?

1 Ответ

1 голос
/ 07 апреля 2020

Вы можете использовать base64_encode() вместо addslashes(), что предотвращает проблемы с двоичными данными из-за преобразования. Вам нужно изменить это, используя base64_decode() при чтении из БД.

Лучшим вариантом будет использование столбца BLOB в вашей БД и функции LOB драйвера PHP DB. Для PDO это будет примерно так:

$pdo = new \PDO(...);
$fp = fopen('data://' . $content, 'rb');
$stmt = $pdo->prepare("insert into data (name) values (?)");
$stmt->bindParam(1, $fp, PDO::PARAM_LOB);
$stmt->execute();

Это решение хранит двоичные данные без изменений в БД.

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