Nodejs学习笔记(5+)文件上传基础 demo (不包括数据库操作)
程序员文章站
2022-03-04 20:43:16
...
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>文件</title>
</head>
<body>
<form action="/journal/receive_file" method="POST" enctype="multipart/form-data">
<input type="file" name="files" value="选择文件"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
server.js
const express = require('express');
const fs = require('fs');
const app = express();
// 文件缓存目录
const multer = require('multer');
const upload = multer({
dest: 'D:/rswork/upload/tmp/'
});
// 连接池集群,管理多个连接
const poolCluster = mysql.createPoolCluster();
poolCluster.add('rsjournal', models.mysql_rsjournal); // 连接数据库,此处不完整
// 接收文件
app.post('/receive_file',upload.array('files'), (req, res) => {
if (!req.files[0]) {
res.send('文件传输错误')
}
var des_file = "D:/rswork/upload/" + req.files[0].fieldname + "/" + req.files[0].originalname
fs.readFile(req.files[0].path, function (error, data) {
if (error) {
return console.error(error)
}
// console.log('writeFile前面');
fs.writeFile(des_file, data, function (err) {
if (err) {
// 接收失败
res.send('文件传输错误')
return console.error(err)
} else {
// 接收成功
res.send('成功!')
// 删除缓存文件
fs.unlink(req.files[0].path, function (err) {
if (err) {
return console.error(err)
}
})
}
})
})
})
const server = app.listen(3333, '0.0.0.0', () => {
console.log('实例访问地址: %s:%d',
server.address().address,
server.address().port);
});
上一篇: UDP实现简单通信