在 MySQL 中存储 PDF 文件

Ste*_*ers 5 c# mysql pdf blob

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

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

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

我的理解是 a BLOBorMEDIUMBLOB是我用来存储它的字段类型,但我在这方面有点无知。我不确定如何在现场存储类似的东西(给它什么 C# 数据类型),然后如何获取它并通过 PDF 阅读器打开它。

Pet*_*ist 5

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

MySQL 数据类型

BLOB, TEXT                L + 2 bytes, where L < 216
MEDIUMBLOB, MEDIUMTEXT    L + 3 bytes, where L < 224
LONGBLOB, LONGTEXT        L + 4 bytes, where L < 232
Run Code Online (Sandbox Code Playgroud)

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

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

此外,我看不出为什么数据库本身在存储此类数据时会变慢的真正原因。主要的瓶颈当然是数据的传输。此外,MySQL 有时会限制查询的最大长度,尤其是响应。

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