Node.js 在NodeJS中使用Multer时出现意外字段错误
错误:Node.js 在NodeJS中使用Multer时出现意外字段错误,node.js,file-upload,multer,body-parser,Node.js,File Upload,Multer,Body Parser,错误: Error: Unexpected field at makeError (c:\Users\Dev\WebstormProjects\Crunch\node_modules\multer\lib\make-error.js:12:13) at wrappedFileFilter (c:\Users\Dev\WebstormProjects\Crunch\node_modules\multer\index.js:39:19) at Busboy.<anony
Error: Unexpected field
at makeError (c:\Users\Dev\WebstormProjects\Crunch\node_modules\multer\lib\make-error.js:12:13)
at wrappedFileFilter (c:\Users\Dev\WebstormProjects\Crunch\node_modules\multer\index.js:39:19)
at Busboy.<anonymous> (c:\Users\Dev\WebstormProjects\Crunch\node_modules\multer\lib\make-middleware.js:97:7)
at Busboy.emit (events.js:118:17)
at Busboy.emit (c:\Users\Dev\WebstormProjects\Crunch\node_modules\multer\node_modules\busboy\lib\main.js:31:35)
at PartStream.<anonymous> (c:\Users\Dev\WebstormProjects\Crunch\node_modules\multer\node_modules\busboy\lib\types\multipart.js:205:13)
at PartStream.emit (events.js:107:17)
at HeaderParser.<anonymous> (c:\Users\Dev\WebstormProjects\Crunch\node_modules\multer\node_modules\busboy\node_modules\dicer\lib\Dicer.js:51:16)
at HeaderParser.emit (events.js:107:17)
at HeaderParser._finish (c:\Users\Dev\WebstormProjects\Crunch\node_modules\multer\node_modules\busboy\node_modules\dicer\lib\HeaderParser.js:70:8)
我在前端使用KendoUI文件上载:
<form id="forFile" action="/postFile" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="inputFile">Upload Attachments</label>
<div class="col-sm-offset-2 col-sm-10 pull-right">
<input type="file" id="inputFile" name="inputFile">
</div>
</div>
</form>
我知道这几乎是关于堆栈溢出的几个问题的重复,但所有这些问题的答案都是使name属性与upload.array或upload.single参数相匹配(我已经尝试了这两个参数),这在我的代码中是令人满意的,正如您可以从捕获我的上载的路由中看到的:
var multer = require("multer");
var upload = multer({ dest: "upload/" });
var type = upload.array('inputFile', 1); //KendoUI
app.post('/postFile', type, function (req, res) {
var tmp_path = req.file.path;
/** The original name of the uploaded file
stored in the variable "originalname". **/
var target_path = 'uploads/' + req.file.originalname;
/** A better way to copy the uploaded file. **/
var src = fs.createReadStream(tmp_path);
var dest = fs.createWriteStream(target_path);
src.pipe(dest);
src.on('end', function() { res.render('complete'); });
src.on('error', function(err) { res.render('error'); });
sendJsonResponse(res, 200, "you posted a file");
});
$("#inputFile").kendoUpload({
multiple: false,
async: {
saveUrl: "postFile",
removeUrl: "removeFile",
autoUpload : true
},
complete: onComplete
});
var multer = require("multer");
var upload = multer({ dest: "upload/" });
var type = upload.array('inputFile', 1); //KendoUI
app.post('/postFile', type, function (req, res) {
var tmp_path = req.file.path;
/** The original name of the uploaded file
stored in the variable "originalname". **/
var target_path = 'uploads/' + req.file.originalname;
/** A better way to copy the uploaded file. **/
var src = fs.createReadStream(tmp_path);
var dest = fs.createWriteStream(target_path);
src.pipe(dest);
src.on('end', function() { res.render('complete'); });
src.on('error', function(err) { res.render('error'); });
sendJsonResponse(res, 200, "you posted a file");
});