如何在 MySQL 中存储一个 blob(图像)?

How to store a blob (image) in MySQL?

我正在使用 php 和 intervention

blob 的数据库格式是什么?

是否MySQL将其保存为 base64?

在将图像文件保存到数据库之前我应该​​做什么?

Image::make('......')->encode('data-url');

是吗?

如何存储二进制大对象 (BLOB)?

  • BLOB 是一个二进制大对象,可以容纳数量可变的 数据。四种 BLOB 类型是 TINYBLOBBLOBMEDIUMBLOBLONGBLOB.
  • 它们的区别仅在于它们可以容纳的值的最大长度。
  • 四种TEXT类型是TINYTEXTTEXTMEDIUMTEXTLONGTEXT。这些分别对应四种 BLOB 类型,具有相同的 最大长度和存储要求。

希望以下代码对您有所帮助:

CREATE TABLE IMAGE_TABLE(
    IMG_ID INT(6) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    IMG_DETAILS CHAR(50),
    IMG_DATA LONGBLOB,
    IMG_NAME CHAR(50),
    IMG_SIZE CHAR(50),
    IMG_TYPE CHAR(50)
);

这将创建一个满足您要求的 table。

您还可以参考以下 SO 答案:

  • Binary Data in MySQL
  • store TEXT/BLOB in same table or not?
  • Storing messages as BLOB (Binary Large Object) or ordinary text?

您可以参考official documentation here. This link and this link 值得一读以加深您的理解。