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

6

我有以下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)
);

我想知道,我应该如何将Base64图片插入表格中。
Base64字符串来自于使用Node.js的fs模块获取图像后的缓冲区。
我正在尝试使用Sequelize的原始查询插入图像,但我没有找到合适的信息。

你想通过什么方式插入Base64图像?是通过SQL语句还是编程的方式? - user871611
通过编程,使用 Sequelize 的原始查询... 我在 Node.js 中使用文件系统 (fs) 包从缓冲区中提取了 base64 字符串。 - user11150028
您可以将这些有用的信息添加到您的问题中。 - user871611
@user871611,我已经添加了它,当然我一开始必须添加它,但由于在如何将其插入到 bytea 中找不到足够的信息,我认为只是在 SQL 查询中询问就足够了,感谢您的耐心等待。 - user11150028
第一个参数应该是我的base64明文字符串? - user11150028
显示剩余2条评论
2个回答

9

1
回答有关Postgres和Sequelize的问题:
您需要使用Sequelize.BLOB('tiny')数据类型来建模BYTEA Postgres数据类型。
这里有更多关于Sequelize数据类型的信息(它还包含上述信息):

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

当将数据转换为小字节块时,Postgres将默认使用utf-8编码,这意味着您可能希望将数据转换为utf-8编码,存储数据,然后以utf-8格式读取它。
编辑:
你将使用Base64将图像二进制数据编码为ASCII字符串: https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接