node.js如何实现附件上传,把上传的附件保存到服务器,并把上传的附件显示到页面上,并添加一个查看和删除附件的功能
时间: 2024-02-19 07:58:01 浏览: 122
node.js实现上传文件功能
5星 · 资源好评率100%
Node.js可以通过使用multer中间件来实现附件上传,保存到服务器的功能,然后使用express框架来搭建服务器,使用fs模块来读取和写入文件。
以下是一个简单的上传附件的例子:
```javascript
const express = require('express');
const multer = require('multer');
const path = require('path');
const fs = require('fs');
const app = express();
// 设置上传路径和文件名
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, './uploads/');
},
filename: (req, file, cb) => {
cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname));
}
});
// 创建上传对象
const upload = multer({ storage });
// 处理上传请求
app.post('/upload', upload.single('file'), (req, res) => {
// 获取上传的文件信息
const file = req.file;
console.log(file);
// 读取文件内容
fs.readFile(file.path, (err, data) => {
if (err) throw err;
// 写入文件到服务器
fs.writeFile('./public/uploads/' + file.filename, data, (err) => {
if (err) throw err;
res.send('File uploaded successfully!');
});
});
});
// 启动服务器
app.listen(3000, () => {
console.log('Server started on port 3000');
});
```
在上面的代码中,使用了multer中间件来处理上传请求,上传的文件会被保存到'./uploads/'目录下,并且使用了fs模块来读取和写入文件。上传完成后,可以通过访问'./public/uploads/'目录下的文件来显示附件。
为了实现查看和删除附件的功能,可以在页面中使用链接来访问相应的文件,或者使用表格来列出所有上传的文件,并提供删除按钮来删除文件。删除文件可以使用fs模块中的fs.unlink()方法来实现。
阅读全文