我有以下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映像插入表中。
使用Node.js上的fs模块获取图像后,Base64字符串来自Buffer。
我正在尝试使用Sequelize的原始查询插入图像,但是我没有找到适当的信息。
答案 0 :(得分:1)
回答有关Postgres和Sequelize的问题:
您将需要使用Sequelize.BLOB('tiny')
数据类型来建模BYTEA
Postgres数据类型。
以下是有关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
答案 1 :(得分:0)
尝试一下:
insert into table_name (image)
values decode('AcAAFBAO5Az....AQAAAFBCO5gT/AEAABT', 'base64')
以下是有关decode