Мне нужно создать файл PDF с библиотекой fpdf и сохранить его в поле BLOB-объекта в моей базе данных MySQL.
Проблема заключается в том, что когда я пытаюсь извлечь файл из поля большого двоичного объекта и отправить его в браузер для загрузки, загруженный файл поврежден и не отображается правильно.
Тот же файл PDF отображается правильно, если я немедленно отправляю его в браузер, не сохраняя его в БД, поэтому кажется, что некоторые данные будут повреждены при вставке в БД.
Мой код примерно такой:
$pdf = new MyPDF(); //class that extends FPDF and create te pdf file
$content = $pdf->Output("", "S"); //return the pdf file content as string
$sql = "insert into mytable(myblobfield) values('".addslashes($content)."')";
mysql_query($sql);
для хранения PDF, и вот так:
$sql = "select myblobfield from mytable where id = '1'";
$result = mysql_query($sql);
$rs = mysql_fetch_assoc($result);
$content = stripslashes($rs['myblobfield']);
header('Content-Type: application/pdf');
header("Content-Length: ".strlen(content));
header('Content-Disposition: attachment; filename=myfile.pdf');
print $content;
чтобы отправить его в браузер для скачивания.
Что я делаю не так?
Если я изменю свой код на:
$pdf = new MyPDF();
$pdf->Output(); //send the pdf to the browser
файл отображается правильно, поэтому я предполагаю, что он правильно сгенерирован, и проблема заключается в сохранении в БД.
Заранее спасибо.