我正在尝试在我的api上使用connect-multiparty
上传文件,但我无法使其有效。
这里是我的代码(样本,因为我的api有很多工作路线):
var express = require('express');
var bodyParser = require('body-parser');
var multipart = require('connect-multiparty');
var app = express();
var multipartMiddleware = multipart({ uploadDir: './imagesPath' });
// Define middleware
app.use(bodyParser.urlencoded({ extended: true })); // Support encoded bodies
app.use(bodyParser.json()); // Support json encoded bodies
var router = express.Router(); // Get an instance of the express Router
router.post('/testFileUpload', multipartMiddleware, function(req, res) {
console.log(req.body, req.files);
// Some other code
});
当我尝试上传文件时,req.body
和req.files
都为空{}
我知道Body-Parser
不再支持multipart/form-data
了,所以我试图找到一种方法将其用于另一个包但到目前为止没有成功。
我尝试过使用busboy
,connect-busboy
,multer
,formidable
,express-formidable
,express-fileupload
,但每次都req.files
是undefined
,所以我觉得我通过让connect-multiparty
为空而在req.files
取得了一些进展。
我见过一些类似问题的主题,例如this one,this one或this one,但不幸的是,没有人帮助过我。
在客户端我正在使用Advanced REST Client
和Postman
。
任何想法我做错了什么?
答案 0 :(得分:1)
对于遇到此问题的人,我发现删除Postman上的Content-Type标题值为" application / javascript"为我工作。我没有注意到整个时间,而我尝试了与OP相同的不同包装。
答案 1 :(得分:-1)
在html的标记表单中放入enctype =“ multipart / form-data”