PostgreSQL - 如何将 Base64 图像字符串插入 BYTEA 列?

6 postgresql base64 sequelize.js bytea

我有以下 SQL:

CREATE TABLE Documents (
  Id INT NOT NULL,
  UserId INT NOT NULL,
  Label CHARACTER VARYING(220) NOT NULL,
  Image BYTEA NOT NULL,
  PRIMARY Key(Id),
  FOREIGN KEY (UserId) REFERENCES Users(Id)
);
Run Code Online (Sandbox Code Playgroud)

我想知道,我应该如何将 Base64 图像插入表中。

Base64 字符串来自使用Node.js 上的fs模块获取图像后的 Buffer。

我正在尝试使用 Sequelize 的原始查询插入图像,但我还没有找到关于此的正确信息。

efi*_*rat 9

尝试这个:

insert into table_name (image)
values decode('AcAAFBAO5Az....AQAAAFBCO5gT/AEAABT', 'base64')
Run Code Online (Sandbox Code Playgroud)

这是一些有关的信息decode

https://www.base64decode.net/postgresql-decode


Dav*_*mer 1

回答有关 Postgres 和 Sequelize 的问题:

您将需要使用该Sequelize.BLOB('tiny')数据类型来对 Postgres 数据类型进行建模BYTEA

以下是有关 Sequelize 中数据类型的更多信息(也包含上述信息):

http://docs.sequelizejs.com/manual/data-types.html

当转换为小 blob 时,Postgres 将默认为 utf-8,这意味着您可能希望将数据转换为 utf-8 编码、存储数据并将其读取为 utf-8。

编辑:

您将使用 Base64 将图像二进制数据编码为 ASCII 字符串: https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding