为什么 属性 'sampleFile' 未定义
why the property 'sampleFile' is undefined
我正在尝试将文件上传到我的服务器并将它们存储在 "upload" 文件中。
我听了很多教程,但我得到了同样的错误
我正在使用 Body-Parser
这是我项目的架构:link
这是我的 /upload 路由 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")
你的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
});
处理Post请求:
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 和文件上传时,您必须在 form
标签中输入 enctype='multipart/form-data'
。
您还必须初始化正确的位置来存储图像,并使该路径在您的 app.js
中保持静态,例如 app.use(express.static('./'));
我正在尝试将文件上传到我的服务器并将它们存储在 "upload" 文件中。 我听了很多教程,但我得到了同样的错误 我正在使用 Body-Parser
这是我项目的架构:link
这是我的 /upload 路由 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")
你的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
});
处理Post请求:
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 和文件上传时,您必须在 form
标签中输入 enctype='multipart/form-data'
。
您还必须初始化正确的位置来存储图像,并使该路径在您的 app.js
中保持静态,例如 app.use(express.static('./'));