2

我正在使用 node/request 模块下载图像,并且试图弄清楚如何使用 node/mssql 模块将该图像插入到 sql server 中的 varbinary 字段中。到目前为止,我已经尝试将强制转换放入插入语句中,将正文(缓冲区)转换为字符串,但都无济于事。我试图弄清楚如何在不使用存储过程的情况下做到这一点。

谢谢!

4

1 回答 1

1

我已经从磁盘读取了一个 .png 图像文件作为“二进制”,然后将其放入“二进制”缓冲区,然后能够使用准备好的语句将其插入 SQL Server DB:

fs.readFile(<path-to-file>, 'binary', function(err, fileData) {
    var binBuff = new Buffer(fileData, 'binary');
    var ps = new sql.PreparedStatement(<connection>);
    ps.input('theImage', sql.VarBinary);
    ps.prepare('INSERT INTO ImageTable (BinaryImage) VALUES (@theImage)', function (err) {
        // check err
        ps.execute({theImage: binBuff}, function(err, records) {
            // check err
            ps.unprepare(function(err) {
                // check err
                // If no error, it's been inserted!
            });
        });
    });
});
于 2017-03-17T01:21:43.133 回答