我想在提交表单时上传文件。我在前端使用ngFileUpload,服务器在轨道上。以下是我写的代码:
<form name="form" ng-submit="submit()">
<input type="text" ng-model="data.username"/>
<input type="text" ng-model="data.address">
<input type="file" id="map" ngf-select ng-model="data.map" name="file"
accept="image/*" ngf-max-size="2MB"
ngf-model-invalid="errorFile">
</form>
在表单提交上,我可以看到包含所有值(包括map / image对象)的数据(在浏览器控制台上)。但是当我检查服务器端时,map显示为{},即空对象。
有人可以帮我解决问题。
答案 0 :(得分:1)
ngUpload有时会很痛苦。这是我们使用ngUpload和Rails时使用的解决方案。简而言之,您需要确保使用Upload.upload
功能将附件发送到服务器。
HTML
<form name="form" ng-submit="submit(data)">
...
<input type="file" id="map" ngf-select ng-model="data.map" name="file"
accept="image/*" ngf-max-size="2MB"
ngf-model-invalid="errorFile">
</form>
JS
$scope.submit = function(data) {
Upload.upload({
url: 'api/data.json',
data: {
data: data
}
}).then(function(res) {
// handle success
}, function(err) {
// handle error
});
}