标题: Node.js Express框架实现文件上传与下载功能详解
简介
在现代Web开发中,文件上传与下载是非常常见的功能。本文将介绍如何使用Node.js与Express框架实现文件上传与下载功能。
实现文件上传功能
要实现文件上传功能,需要安装并使用第三方库multer,它是一个Node.js中间件,用于处理星形数据的公式。代码示例如下所示:
const multer = require('multer')
const upload = multer({ dest: 'uploads/' })
app.post('/upload', upload.single('file'), (req, res) => {
res.send('File uploaded successfully.')
})
上面代码将文件存储到名为uploads的文件夹中,然后返回上传成功的消息。需要注意的是,此代码仅适用于单一文件上传,如果要同时上传多个文件,则需使用upload.array()方法。
可以使用HTML表单来上传文件,表单中必须有一个类型为“file”的输入域。通过表单上传文件的示例代码:
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" value="Upload" />
</form>
实现文件下载功能
要实现文件下载功能,需要通过设置HTTP头来告诉浏览器要下载的文件类型和数据。代码示例如下所示:
app.get('/download/:filename', (req, res) => {
const { filename } = req.params
const file = `${__dirname}/uploads/${filename}`
res.download(file)
})
上面代码首先从请求参数中获取文件名,然后使用Express的“响应对象”来提供文件下载选项。如果要提供的文件不在公开文件夹中,应指定完整路径。
也可以直接使用URL参数传递文件名,例如:
<a href="/download/myfile.pdf">Download PDF file</a>
总结
通过使用Node.js和Express框架,您可以轻松实现文件上传和下载功能。使用multer中间件来处理文件上传,使用res.download()方法来实现文件下载。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node.js express框架实现文件上传与下载功能实例详解 - Python技术站