在Angular前端应用程序中,使用Angular File Upload指令进行文件上传。
在Node.js服务器端,使用Multer中间件来处理文件上传请求,并将文件保存到本地磁盘。
const multer = require('multer');
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'uploads/')
},
filename: function (req, file, cb) {
cb(null, file.originalname)
}
});
const upload = multer({ storage: storage }).single('imageFile');
app.post('/upload', function(req, res) {
upload(req, res, function(err) {
if (err) {
res.status(500).json({ error: err });
} else {
res.status(200).json({ message: '文件已上传' });
}
});
});
在MySQL数据库中,创建一个表来存储上传的图像。
CREATE TABLE images (
id INT NOT NULL AUTO_INCREMENT,
filename VARCHAR(50) NOT NULL,
filepath VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
将上传的文件信息(文件名、文件路径)插入到数据库表中。
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'mydatabase'
});
app.post('/upload', function(req, res) {
// 文件上传逻辑
// ...
// 将文件信息插入数据库表中
const filename = req.file.originalname;
const filepath = req.file.path;
const sql = 'INSERT INTO images (filename, filepath) VALUES (?, ?)';
connection.query(sql, [filename, filepath], function (err, result) {
if (err) {
res.status(500).json({ error: err });
} else {