这篇“node怎么使用multer进行文件的上传与下载”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“node怎么使用multer进行文件的上传与下载”文章吧。
使用Express静态资源中间件的默认行为是在浏览器中展示静态文件,而不是自动下载。
如果需要访问静态资源时自动下载,可以在HTTP响应中设置Content-Disposition头。Content-Disposition头指示浏览器以何种方式处理要下载的文件。
常见的Content-Disposition值有"inline"和"attachment"。当Content-Disposition的值为"attachment"时,浏览器会自动下载文件,示例代码如下:
app.use('/uploads', express.static(__dirname + '/uploads', {
setHeaders: (res, path) => {
res.setHeader('Content-Disposition', 'attachment');
}
}));
Multer是一个Node.js中间件,用于处理表单数据中的multipart/form-data类型。主要用于上传文件,将上传的文件保存到指定的目录中。
Multer还提供了多个方法,这些方法可以根据不同的需求设置文件上传的行为。比如:single()方法用于上传单个文件,none()方法表示不接受任何文件,fields()方法用于上传多个字段的文件,limits属性用于限制上传文件的大小等
接下来开始准备:
//html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>图片上传</title>
</head>
<body>
<input type="file" id="fileInput">
<br><br>
<button onclick="upload()">上传</button>
<script>
function upload() {
const formData = new FormData()
formData.append('image', document.getElementById('fileInput').files[0])
fetch('http://127.0.0.1:3000/upload', {
method: 'POST',
body: formData
})
.then(response => response.text())
.then(result => {
console.log(result)
})
}
</script>
</body>
</html>
//app.js
const express = require('express')
const app = express()
// 创建上传路由
app.post('/upload', (req, res) => {
res.send('hello world')
})
// 启动服务器
app.listen(3000, () => {
console.log('Server running on http://localhost:3000')
})
const express = require('express')
const multer = require('multer')
const path = require('path')
const app = express()
// diskStorage创建上传存储器
const storage = multer.diskStorage({
// 设置上传文件存储目录
destination: function (req, file, cb) {
cb(null, './uploads/')
},
//保存在 uploads 中的文件名
filename: function (req, file, cb) {
const extname = path.extname(file.originalname) // 获取文件后缀名
const filename = Date.now() + '-' + extname // 时间戳+后缀名 生成唯一文件名
cb(null, filename)
}
})
//创建一个名为upload的文件上传示例
const upload = multer({ storage: storage })
// 创建上传路由
// upload.single('image') 处理单个文件上传
app.post('/upload', upload.single('image'), (req, res) => {
const file = req.file
if (!file) {
return res.status(400).send('请选择要上传的图片')
}
res.send('上传成功')
})
// 启动服务器
app.listen(3000, () => {
console.log('Server running on http://localhost:3000')
})
const express = require('express')
const multer = require('multer')
const path = require('path')
const app = express()
XXXXXXXXXXXXXXX 跟上面一样的
app.use('/uploads', express.static(__dirname + '/uploads', {
setHeaders: (res, path) => {
// 当Content-Disposition的值为"attachment"时,浏览器会自动下载文件
res.setHeader('Content-Disposition', 'attachment');
}
}));
// 启动服务器
app.listen(3000, () => {
console.log('Server running on http://localhost:3000')
})
以上就是关于“node怎么使用multer进行文件的上传与下载”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://blog.csdn.net/weixin_52479803/article/details/130101482