下面是关于使用 node + multer 实现文件上传的攻略:
1. 安装和引入 multer
Multer 是一个处理文件上传的 node.js 中间件。首先需要在命令行中使用 npm 安装 multer 包:
npm install multer --save
安装完成后,在 Node.js 脚本中引入 multer:
const multer = require('multer');
2. 配置 multer
在使用 multer 之前,需要先配置 multer。主要需要定义上传文件的存储位置和文件名的生成方式。常规配置如下:
const storage = multer.diskStorage({
// 存储路径,此处为项目根目录下的 uploads 文件夹
destination: function (req, file, cb) {
cb(null, path.join(__dirname, 'uploads'))
},
// 文件名格式
filename: function (req, file, cb) {
cb(null, Date.now() + '-' + file.originalname)
}
});
3. 使用 multer
上传文件的 HTML 表单如下:
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit">上传文件</button>
</form>
在后端路由中使用 multer 处理上传的文件:
const upload = multer({ storage: storage })
app.post('/upload', upload.single('file'), function (req, res, next) {
// req.file 是 `file` 文件的信息
console.log(req.file)
res.send('上传成功!')
})
其中,upload.single('file')
表示上传单个文件,文件的 name 属性为 file
。如果要上传多个文件,则可以使用 upload.array('files')
或者 upload.fields([{ name: 'file1' }, { name: 'file2' }])
。
示例1:上传单个文件
HTML 表单如下:
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit">上传文件</button>
</form>
后端路由:
const upload = multer({ storage: storage })
app.post('/upload', upload.single('file'), function (req, res, next) {
// req.file 是 `file` 文件的信息
console.log(req.file)
res.send('上传成功!')
})
示例2:上传多个文件
HTML 表单如下:
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="files" multiple>
<button type="submit">上传文件</button>
</form>
后端路由:
const upload = multer({ storage: storage })
app.post('/upload', upload.array('files'), function (req, res, next) {
// req.files 是 `files` 文件组的信息
console.log(req.files)
res.send('上传成功!')
})
以上,就是使用 node + multer 实现文件上传过程的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node + multer 实现文件上传过程 - Python技术站