【发布时间】:2021-01-08 11:34:37
【问题描述】:
我在 MySQL 中有图像。试图在我的 React 页面上显示一个,因此配置了 Express。数据库中的图片存储为 mediumblob 并以 base64 编码。它看起来像
iVBORw0KGgoAAAANSUhEUgAABQAAAAPACAYAAABq3NR5AAAgAElEQVR4AezBCZzXc+I4/uf70zSmTMd0rIqwSWzLLiK5i9....
所以我配置 Express 来获取这些数据:
const mysql = require("mysql");
const bodyParser = require("body-parser");
const express = require("express");
const app = express( );
const port = 4000;
app.use(bodyParser.json( ));
var mysqlConnection = mysql.createConnection({
host: "host",
user: "user",
password: "password",
database: "db"
});
mysqlConnection.connect((err) => {
if (!err) {
console.log("DB Connected");
} else {
console.log("DB Connection Failed " + err.message);
}
});
app.get("/rf", (req, res, next) => {
mysqlConnection.query(
"SELECT photo FROM photo WHERE id=365",
function(err, results, fields) {
if (err) throw err;
res.set("Access-Control-Allow-Origin", "*");
res.send(results);
}
);
});
app.listen(port, ( ) => {
console.log(`Listening at http://localhost:${port}`);
});
当尝试在 http://localhost:4000/rf 获取数据时,我收到的不是 base64 字符串,而是 Unit8Array,它看起来像:
[{“照片”:{“类型”:“缓冲区”,“数据”:[105,86,66,79,82,119,48,75,71,103,111,65,65,65,65,78,83 ,85,104,69....
而且我无法在页面上显示它。请帮助我,或者给我解决这个问题的样本。
【问题讨论】:
-
在img标签中 src="data:image/png;base64,
" -
也许这个问题有你的问题的答案。 stackoverflow.com/questions/12710001/…
标签: mysql reactjs image express base64