在AngularJS控制器

时间:2015-06-09 21:05:10

标签: angularjs angularjs-scope multipartform-data form-data

我有以下输入元素:

 <div class="form-group">
        <label>Attach BOL Document</label>
           <input name="file" type="file" class="form-control" onchange="angular.element(this).scope().uploadFile(this.files)" />
     </div>

在我的控制器中(在任何函数之外)我设置一个这样的变量:

 $scope.fd = new FormData();

我定义了以下函数,触发输入元素的更改,如上所示:

 $scope.uploadFile = function (files) {
    console.log(files[0]);
    $scope.fd.append("file", files[0]);
    console.log($scope.fd);

};

第一个console.log按照我的预期输出File对象,所以我知道它正被传递到我的$ scope。问题是第二个console.log输出一个空的FormData对象。 File对象没有被追加?

我想也许这与我在UploadFIle函数之外声明$ scope.fd的事实有关,但即使在函数内声明它也不起作用...

为什么???

1 个答案:

答案 0 :(得分:0)

我知道这里发生了什么。它与AngularJs无关。您无法检查添加到FormData对象的键。请参阅此问题以供参考

How to inspect FormData?

这真的很臭...所以在我准备好服务器端代码并​​且我实际上POST数据后我无法判断该文件是否实际上被追加了。我确信这是我无法验证这一点。