【问题标题】:How to upload file using multipart post with multer is nodejs如何使用带multer的多部分帖子上传文件是nodejs
【发布时间】: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 的表单属性。很确定它需要是多部分/表单数据。应该需要破折号。

标签: node.js express multer


【解决方案1】:

问题在于表单属性 enctype。添加破折号(多方/表单数据)后,它工作正常。

【讨论】:

  • 你能试着解释一下你到底做了什么吗:“添加破折号(多方/表单数据)后”我不明白。我有同样的问题,console.log 没有显示任何内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-21
  • 2011-01-25
  • 2021-09-21
  • 2021-07-25
  • 2017-03-29
  • 1970-01-01
  • 2021-08-22
相关资源
最近更新 更多