在 MySQL 中存储 PDF 文件

2023-11-30

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

目前,我有一个客户列表,每个客户都有一个包含其帐户信息的证书,他们可以将其提供给其他公司以证明他们是我们的客户。目前,他们的证书以 PDF 格式导出并通过电子邮件发送给工作人员(客户也会收到纸质副本),而该人员的邮箱中充满了这些电子邮件。我更愿意将其保存在客户记录中 - 允许通过我们内部 CRM 中的客户文件进行访问。

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

我的理解是,一个BLOB or MEDIUMBLOB是我用来存储它的字段类型,但我在这方面有点无知。我不确定如何在字段中存储类似的内容(提供什么 C# 数据类型),以及如何获取它并通过 PDF 阅读器打开它。


将其放入数据库中,但是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

我已经使用过几次,效果非常好。请务必保存文件大小,因为这样可以更轻松地检索它。不确定它是否像 PHP 一样适用于 C#。

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 MySQL 中存储 PDF 文件 的相关文章

随机推荐

  • RequireJS 未加载名为“module.js”的文件或模块

    我刚刚开始使用 RequireJS 我尝试了一个简单的代码 但一种方法有效 但另一种方法无效 文件夹 script 有 main js module js require js 在 main js 中 requirejs module fu
  • 克隆控件 - C# (Winform) [重复]

    这个问题在这里已经有答案了 可能的重复 是否可以复制某个控件的所有属性 C 窗口窗体 我必须创建一些类似于设计时创建的控件的控件 创建的控件应该具有与预定义控件相同的属性 或者换句话说 我想复制一个控件 有没有一行代码可以达到这个目的 或者
  • 快速屏蔽圆段

    I m creating a simple player app There is a circle that shows a progress of playing a song 在 Swift 中绘制这个圆圈并制作蒙版的最佳方法是什么
  • 获取当前类的typedef

    我目前正在将 boost intrusive ptr 与我的 GUI 类一起使用 虽然这或多或少是一个方便的问题 但是否有正确的方法来获取当前类的类型名 我问的原因是我有一个用于定义不同指针类型的宏 define INTRUSIVE PTR
  • Python - 从 Selenium 中 ::before 伪元素上的 CSS 属性“content”获取文本?

    我正在尝试抓取一些元素并返回网页上显示的文本 我相信我可以通过 css selectors 和 xpaths 很好地找到元素 但我无法返回所需的文本 下面是我的程序 from selenium import webdriver from s
  • 使用 LoginButton 监听 Facebook 注销。 (4.1)

    我一直在阅读 但尚未找到解决方案 所以就这样吧 我正在尝试升级到 Facebook 的新 SDK 4 1 Android SDK 我可以使用以下代码使用 Facebook 的 LoginButton 成功登录用户 facebookLogin
  • pip install 中的方括号是什么意思?

    我看到越来越多的命令是这样的 pip install splinter django 这些方括号有什么作用 您使用的语法是 pip install project extra 就你而言 你是installing the splinter软件
  • Go SQL 驱动程序获取接口{}列值

    我正在尝试使用 go sql 驱动程序从数据库表中读取数据 并将这些值转换为 map string interface 列名是映射的键 值是interface 我将所有列添加到一个数组中 我正在使用 RawBytes 的代码示例 位于htt
  • 从 WiFi 传感器读取 RSSI

    请帮助我如何用 Java 编写代码来读取 WiFi 传感器的接收信号强度指示器 我尝试使用套接字编程来做到这一点 但我所有的尝试都没有得到我想要的 现在我正在查看 J2me 我可能会得到很好的答案 但我发现我可能需要一些建议 谢谢 您使用的
  • 为什么这个 GLUT 程序无法编译?我缺少库或标头吗?

    我刚刚开始使用 Linux Mint 11 最近我决定将 OpenGL 编程作为一种爱好 我发现代码和技术相对简单 但是 我很难尝试将所有资源放在正确的位置 代码是 include
  • 内容解析器notifyChange()不工作

    我已经设置了一个片段来使用 CursorLoader 从自定义内容提供程序中提取数据 问题是 当我使用内容解析器更新 SQLite 表中的记录时 光标不会刷新 即getContext getContentResolver notifyCha
  • Java Swing (BoxLayout) 对齐问题

    我对 Java Swing 非常陌生 在获得良好的布局方面遇到了很多问题 我已经查看了谷歌 甚至该网站上的其他答案 但我发现没有任何信息似乎可以解决该问题 这是我努力的结果 正如您所看到的 标签 文本字段和按钮都没有对齐 我的目标是让它们都
  • 是否有任何有效的理由忽略捕获的异常

    哇 我刚刚从外包开发人员那里拿回了一个巨大的 C 项目 在进行代码审查时 我的分析工具揭示了很多它认为不好的东西 更令人沮丧的消息之一是 Exceptions DontSwallowErrorsCatchingNonspecificExce
  • 调整 selecInput 使其同时适用于两种不同的方法

    我使用两种多标准方法来查找用于生成地图的簇号 方法有VIKOR and TOPSIS 对于每种方法 我需要知道标准的目标是什么 即是否最大化 max 或最小化 min 我有两个标准 所以我创建了两个selectInput供用户选择是否愿意m
  • 需要帮助使用 Bash 和 sed 着色/替换任意字符串

    我正在使用基于此处使用的技术的 bash 脚本 在 bash 中获取颜色输出为我的构建和其他脚本的输出着色 使内容更易于阅读 我的构建中的一个步骤执行 git pull 并且 git 服务器在一堆其他输出中吐出一个像这样的 欢迎 字符串 W
  • 使用Python或graphviz绘制鱼骨图

    我正在尝试用Python生成鱼骨图 因果图或石川图 有没有办法让它更像标准的鱼骨图 from graphviz import Digraph A HW Root SW Root Electric HW ink HW windows SW D
  • Quartus Prime 中的“多个常量驱动程序”Verilog 错误

    我正在致力于用 Verilog 设计一个有限状态机来表示堆栈 该模块如下 module state machine s Enable Clock Resetn c OF Err UF Err input 2 0 s input Enable
  • 具有表达式的属性中使用的可空 DateTime 返回意外的默认值

    我有以下两个方法扩展 public static class DateTimeConverter public static DateTime Convert this DateTime time gt time null new Date
  • Java中激活其他进程的窗口

    我有两个 Java swing 应用程序 意味着在两个 JVM 中运行 有什么办法可以在它们之间切换吗 通过 Java 代码激活另一个应用程序的窗口 您可以尝试使用JNA 我将使用 Maven 为您提供一些适用于 Windows 的代码 或
  • 在 MySQL 中存储 PDF 文件

    如何将 PDF 文档存储在 MySQL 的字段中 目前 我有一个客户列表 每个客户都有一个包含其帐户信息的证书 他们可以将其提供给其他公司以证明他们是我们的客户 目前 他们的证书以 PDF 格式导出并通过电子邮件发送给工作人员 客户也会收到