ngFileUpload with rails

时间:2016-03-25 09:00:23

标签: ruby-on-rails angularjs ng-file-upload

我想在提交表单时上传文件。我在前端使用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显示为{},即空对象。

有人可以帮我解决问题。

1 个答案:

答案 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
        });
    }