在mysql中存储pdf

时间:2009-06-11 21:14:02

标签: c# mysql pdf blob

如何将PDF文档存储在mysql的字段中?

目前,我有一个客户列表,每个客户都有一个证书,其中包含有关其帐户的信息,可以提供给其他公司以证明他们是我们的客户。目前,他们的证书以PDF格式导出,并通过电子邮件发送给工作中的某人(客户也获得了物理副本),并且该人的邮箱中充满了这些电子邮件。我更喜欢将它放在客户的记录中 - 允许通过我们内部CRM中的客户文件访问它。

我考虑将PDF放在一个文件夹中,并将其位置作为varchar存储在客户的记录中,但是如果PDF被移动/删除/等等。然后我们上了一条小溪。

我的理解是,blob或mediumblob是我用来存储它的字段类型,但我在这方面有点无知。我不确定如何在字段中存储类似的内容(c#datatype提供它),然后如何获取它并通过pdf阅读器打开它。

4 个答案:

答案 0 :(得分:4)

把它放在数据库中,但是blob数据类型可能不会削减它。中型通常就足够了。

Mysql Datatypes

BLOB, TEXT                L + 2 bytes, where L < 216
MEDIUMBLOB, MEDIUMTEXT    L + 3 bytes, where L < 224
LONGBLOB, LONGTEXT        L + 4 bytes, where L < 232

我已经好几次使用了这个效果非常好。一定要保存文件大小,因为它可以更容易地检索它。不确定它是否适用于C#,因为它适用于PHP。

如果使用带参数的预准备语句,数据将自动转义AFAIK。

此外,我无法确定数据库本身在将此类数据存储在其中时会变慢的原因。主要的瓶颈当然是数据的传输。此外,mysql有时会限制查询的最大长度以及特别是响应。

一旦你运行它,它非常整洁,特别是在处理大量小文件时。对于少量大文件,这种方法没有意义,最好使用一些备份系统来处理移动/删除的文件。

答案 1 :(得分:1)

http://www.phpriot.com/articles/images-in-mysql是一个很好的教程,包含一些背景信息,以及在MySQL中存储图像的实现

答案 2 :(得分:0)

老实说,我认为使用链接而不是实际将文件插入数据库是最好的方法。这样做会使数据库变得非常慢,并且比它的价值更麻烦。

我会将文件上传到指定的文件夹,如“证书”,并使证书名称与客户编号一起使用,以便于查找和编辑,删除等。我看到人们将图像存储在数据库中,但即便如此建议反对。

如果您希望的方法绝对必须,请查看以下文章:

http://www.wellho.net/mouth/1001_-pdf-files-upload-via-PHP-store-in-MySQL-retrieve.html

它解释了如何在mySQL数据库中存储和检索.pdf文件。

祝你好运!

答案 3 :(得分:-2)

  

我考虑过将PDF放入   文件夹并将其位置存储为   varchar在客户的记录中,但是   如果PDF被移动/删除/等。   然后我们上了一条小溪。

这就是我要采取的方法。然后使用某些逻辑或许某些BPEL类型的东西 - 检测是否有任何文件移动/删除并触发数据库的触发器以正确更新位置/删除位置