【发布时间】:2016-01-07 19:26:47
【问题描述】:
我正在尝试使用 multer 上传文件。文件未上传。请让我知道代码有什么问题。 根据 multer 文档 req.body 带有文件,但未定义。
var express = require('express');
var multer = require('multer');
var jade = require('jade');
var upload = multer({dest: 'uploads/'});
var app = express();
app.set('view engine', 'jade');
app.set('views', './views');
app.get('/signup', function (req, res){
res.render('signup');
});
app.post('/signup', upload.single('profile_images'), function(req, res){
if(req.file){
console.log(util.inspect(req.file));
}
res.json(req.body);
});
app.listen(3000, function() {
console.log('Server started');
});
html
head
title #{title}
link(rel='stylesheet', href='/stylesheets/style.css')
body
h1 #{title}
p Enter your name and email address to become a member.
form(action='/signup', method='post', enctype='multipart/formdata')
div
label Name
input(type='text', name='name')
div
label Email
input(type='text', name='email')
div
label Profile Image
input(type='file', name='profile_image')
div
input(type='submit')
【问题讨论】:
-
我在服务器上看到复数
upload.single('profile_images'),在表单中看到单数name='profile_image' -
在 console.log(req.body);你到底在控制台中得到了什么?
-
console.log 不打印任何内容。
-
乔希,两者使用同名“profile_images”后它不起作用
-
@HiteshShahjee 检查 enctype 的表单属性。很确定它需要是多部分/表单数据。应该需要破折号。