【发布时间】:2016-03-25 09:00:22
【问题描述】:
我想在提交表单时上传文件。我在前端使用 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>
在表单提交时,我可以看到包含所有值(包括地图/图像对象)的数据(在浏览器控制台上)对象。但是当我在服务器端检查时,地图显示为 {} 即空对象。
谁能帮我解决这个问题。
【问题讨论】:
-
您能否向我们展示您处理文件上传的控制器代码。就我个人而言,我只会使用回形针或carrierwave来处理文件上传,因为这些是rails应用程序的关键
-
在控制器端,我调用了一个 API,将数据对象作为我的 POST 数据传递。数据对象还包括地图对象。代码如下:
var request = $http({ method: 'POST', url: '/myapi/post', data: data }) return req.then(function(resp){ return resp; }) -
好的,所以您正在将文件保存到模型中是吗?你的 allowed_params 呢,查看完整的控制器代码会有所帮助,只需使用此控制器代码更新问题
-
是的..我正在将文件保存到“数据”模型中。所以我认为模型对象作为文件的空对象发送,因为我们必须上传它。我可以在发送/提交表单时上传吗?
-
只用回形针,比你想做的简单得多
标签: ruby-on-rails angularjs ng-file-upload