var multipartMiddleware = multipart()
router.post('/upload', multipartMiddleware, function (req, res) {
// console.log(req.body, req.files);
const { path: filePath, originalFilename } = req.files.file
const newPath = path.join(path.dirname(filePath), originalFilename)
fs.rename(filePath, newPath, function (err) {
if (err) {
return;
}
else {
const file = fs.createReadStream(newPath)
const form = new FormData()
form.append('file', file)
fetch('http://localhost:8080/upload', {
method: "POST",
body: form
})
}
})
res.json({})
});
module.exports = router;
注意:
node无法直接解析上传文件,需要引入npm包connect-multiparty中间件,或者引入npm包multiparty
node拿到文件,需要使用fs.createReadStream转成可读流
node环境没有formData对象,需要引入npm包form-data
fetch请求提交formData数据,不能设置Comtemt-Type
最后给大家附上完整的代码: node中间层实现文件上传
总结
以上所述是小编给大家介绍的node中间层实现文件上传功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对软件开发网网站的支持!









