javascript - 数据损坏缓冲区到 BLOB MYSQL
问题描述
使用NodeJs,我尝试在我的应用程序POST发送的MySQL LONGBLOB中上传一个缓冲区(图像),我在我的脚本中完美接收它,但是当我将它插入我的表中时,我没有与我相同的数据有。
你能解释一下为什么吗?
var query = "INSERT INTO categorie (nom_categorie";
// FIELD
if (req.body.def_categorie) query += ",def_categorie";
if (req.body.idplat) query += ",idplat";
if (req.body.idmenu) query += ",idmenu";
if (req.body.image_categorie) query += ",image_categorie";
query += ")";
query += " VALUES (" + pool.escape(req.body.nom_categorie);
// VALUES (Echappement des caractères pour empécher les injections SQL
if (req.body.def_categorie) query += "," + pool.escape(req.body.def_categorie);
if (req.body.idplat) query += "," + pool.escape(req.body.idplat);
if (req.body.idmenu) query += "," + pool.escape(req.body.idmenu);
if (req.body.image_categorie) query += "," + Buffer.from(req.body.image_categorie, "utf8");
query += ")";
pool.query(query, null, function (err, results) {
if (err) {
pool.end();
res.status(500).send(err);
} else {
pool.end();
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.send(results);
}
});
解决方案
我发现了我的问题,我只是在 BASE64 中对我的数据进行编码,然后用 URLENCODE 再次对其进行编码
推荐阅读
- audio - 如何从声音文件中提取包络?
- linux - 如何使用带有重定向的 wget 方法 POST 登录网站
- python-3.x - 尝试删除 NFS 挂载目录时出现 shutil.rmtree() 错误
- r - 如何在 R 中将 NA 更改为 0
- c++ - Qt5 - QML:触发后按钮不显示
- javascript - 当父级重新渲染时,连接的 React 组件不必要地重新渲染
- scala - 连接 RDD[(Long, Array[Byte])] 和具有 Long 字段的案例类的 RDD
- talend - 如何在talend中执行条件重复数据删除
- sql - Where 子句在 Teradata 上无法正常工作的案例?
- ruby-on-rails - Rails ActiveStorage / Cloudinary 未将图像请求重定向到 HTTPS