我想提交带控制器功能的表单。所以我有以下代码: -
<form ng-submit="uploadLogo()" name="logoForm" method="post" enctype="multipart/form-data">
<div class="col-sm-6">
<input type="file" name="letterhead" id="letterhead" required />
<div>
<button type="submit" class="btn btn-md btn-info">Upload</button>
</div>
</form>
控制器
$scope.uploadLogo = function () {
Practices.updateLogo().save(function (res) {
console.log('res :' + res);
});
}
服务
updateLogo: function () {
return $resource('/api/practicesUpload',
{}, { 'save': { method: 'POST'} });
}
路由
app.post('/api/practicesUpload', multipartMiddleware, practices.uploadLogo);
服务器端
exports.uploadLogo = function (req, res, next) {
console.log('Called');
console.log(req.files);
var tempfile = req.files.letterhead.path;
....
}
服务器端被调用,但我没有获取文件。我收到TypeError: Cannot read property 'path' of undefined
不存在的错误。
如果我直接提交表格,一切运作良好: -
<form action="/api/practicesUpload" name="logoForm" method="post" enctype="multipart/form-data">
如何通过控制器提交表单。我通过控制器提交它的原因是通过在控制器中创建一个标志来显示Success Message
。