将PDF存储在MySQL数据库中

时间:2012-11-06 00:05:55

标签: php pdf symfony twig

我正在开发一个应用程序,我需要用PDF创建发票。我正在使用pdfbundle并且正确创建了PDF文件:

public function helloAction()
{
    $format = $this->get('request')->get('_format');
    $name = "work!!!";
    return $this->render(sprintf('miomioBundle:Venta:helloAction.%s.twig', $format), array('name' => $name));
}

但是如何将该文件存储在数据库中?

4 个答案:

答案 0 :(得分:4)

将它们作为文件存储在磁盘上并在数据库中引用它们的位置会好得多。所以商店:

  

/path/to/store/invoice_434992.pdf

在相关表格中,每个都有一个唯一的文件名,并在需要的地方引用它。

答案 1 :(得分:2)

是否有任何特殊要求要将这些pdf存储在数据库中。通常,将大型二进制内容存储在数据库中是个坏主意。

让发票放在具有唯一文件名的文件中,并将文件路径存储在数据库表中。

答案 2 :(得分:2)

我做到了这一点。有一篇关于如何做的非常好的文章。

http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/uploading-files-to-mysql-database.aspx

正如其他人所说,将二进制数据存储在数据库中可能不是一个好主意。

答案 3 :(得分:1)

您可以在数据库中创建一个表:

____________________________________________
| ID | TIME | QUERY | PDF_NAME | PDF_FILE  |
|----|------|-------|----------|-----------|
... 

PDF_FILE的类型是BLOB,其余的是不言自明的。这样,如果您愿意,可以搜索一段时间后发生的查询结果。