html
<form action="http://localhost:8085/api/uploadimg" method="POST" enctype="multipart/form-data" target="nm_iframe">
<input @change="getImgFile" type="file" name="imgfile">
<button class="btn btn-default" type="button" @click="publish"><span>提交</span></button>
</form>
<iframe name="nm_iframe" style="display:none;"></iframe>
js
getImgFile (event) {
let ele = event.srcElement ? event.srcElement : event.target;
this.img = ele.files[0];
console.log(ele.files[0]);
},
publish () {
if (this.img) {
let formData = new FormData();
formData.append('file', this.img);
let config = {
headers: {'Content-Type': 'multipart/form-data'}
}
this.$http.post(`/api/uploadimg`, formData, config).then(response => {
console.log(response);
}).catch(function(error) {
console.log(error)
})
} else {
alert('请选择文件!');
}
},
node
// upload.js
var multer = require('multer');
var storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, './uploads')
},
filename: function(req, file, cb) {
var fileFormat = (file.originalname).split(".");
cb(null, file.fieldname + '-' + Date.now() + "." + fileFormat[fileFormat.length - 1]);
}
});
var upload = multer({
storage: storage
});
module.exports = upload;
// 图片上传
var multer = require("./upload");
app.post('/uploadimg', multer.single('imgfile'), function(req, res, next) {
var files = req.files;
console.log(files);
if (!files[0]) {
outPut(res, JSON.stringify(util.mergeObj(error, { message: '上传文件错误!' })))
} else {
outPut(res, JSON.stringify(util.mergeObj(success, files[0])))
}
})
我在前端上传图片时,报错500,提示信息Error: Unexpected field
,网上找答案,都是name不一致的说法,但是我的name都是imgfile
,求大神告知原因。
不知你的问题是否解决了, 前端报500的同时,你的nodejs server端应该有相应的错误日志,看看这个Error报错发生的具体文件和行号 有助于进一步分析你的报错原因。
如果还没解决,可以留言给我帮你看下。