在没有文件输入的情况下将Javascript中的图像转换为Varbinary



我正在尝试使用Node.js上的mssql包进行插入SQL查询。

但是其中一个参数是varbinary已"上传"的图像的;在数据库中。
示例:0x78DAC...

我没有使用文件输入来读取图像。我的项目涉及从网站(使用puppeteer)截取屏幕截图,然后我执行代码来选择图像并转换它。

如何将图像文件(例如。jpeg)转换为字节数组或一个varbinary string,所以我可以使用它在我的SQL?有没有一个npm包可以帮我解决这个问题?

可能有更好的方法,但它对我有效:

const fs = require('fs');
const sql = require('mssql');
var connString = {
user: 'sa',
password: '123',
server: 'localhost',
database: 'Banco',
options: {
trustServerCertificate: true,
},
};
fs.readFile('img.png', (error, file) => {
sql.connect(connString).then(() => {
let insertCommand = 'INSERT INTO _ImageTable (BinaryImage, Date) VALUES (@Image, GETDATE())';
let prepStatm = new sql.PreparedStatement();
prepStatm.input('Image', sql.VarBinary);
let params = { Image: file };
prepStatm
.prepare(insertCommand)
.then((ps) => ps.execute(params))
.then(() => prepStatm.unprepare())
.then(createImageFromDB); //THIS IS JUST TO VERIFY IF IT SAVED CORRECTLY AT THE DB
});
});
const createImageFromDB = () => {
sql.query`SELECT TOP 1 BinaryImage FROM _ImageTable ORDER BY Date DESC`.then((result) => {
let varbinaryFromDatabase = result.recordset.at(0).BinaryImage;
fs.writeFile('imgFromDb.png', varbinaryFromDatabase, () => {});
});
};

相关内容

  • 没有找到相关文章

最新更新