我试图将文件上传到我的服务器并将其存储在"上传"文件。 我遵循了许多教程,但我得到了同样的错误 我正在使用Body-Parser
这是我项目的架构:link
这是我的/上传路由Nodejs代码
const express = require('express');
const route = express.Router();
const multer = require('multer');
//const upload = multer({ dest: 'upload/' });
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '../upload')
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now()+".jpg")
}
})
var upload = multer({ storage: storage }).single('sampleFile')
//route.use(upload());
route.get("/upload",(req,res,next)=>{
res.render("siteshs/upload");
});
route.post('/upload', function (req, res,next) {
upload(req, res, function (err) {
if (err) {
// An error occurred when uploading
return
}
console.log(req.files.sampleFile);
// Everything went fine
})
})
module.exports = route

我的PUG代码
extends ../layout
block content
form(method="post", action="/siteshs/upload")
.form-group
label choisissez votre fichier excel
input.form-control(type='file', name='sampleFile')
.form-group
input.form-control(type="submit", value="envoyer")
答案 0 :(得分:0)
您的multer初始化
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './')
},
filename: function (req, file, cb) {
cb(null, file.originalname);
}
});
var upload = multer({
storage: storage
});
处理发布请求:
router.post('/todo',upload.any(),function(req,res){
var path = req.files[0].path;
var imageName = req.files[0].originalname;
var imagepath = {};
imagepath['path'] = path;
imagepath['originalname'] = imageName;
console.log(imagepath)
})
前端代码:
form.form-signin(action='/todo', method='post', enctype='multipart/form-data')
textarea#tdesc.form-control(rows='5', name='tdesc')
br
input.form-control(type='file', name='path')
br
button.btn.btn-lg.btn-default.btn-block(type='submit') Add Task
使用multer和文件上传时,您必须在enctype='multipart/form-data'
标记中提供form
。
您还必须初始化存储图像的正确位置,并在app.js
app.use(express.static('./'));
之类的内容中使该路径保持静态