将文件添加到 AngularJS 控制器中的 $scope
Adding files to $scope in AngularJS controller
我有以下输入元素:
<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 对象。文件对象没有被追加??
我认为这可能与我在 UploadFIle 函数外部声明 $scope.fd 有关,但即使在函数内部声明它也不起作用...
为什么???
嗯,我知道这是怎么回事了。它与 AngularJs 无关。您无法检查添加到 FormData 对象的键。请参阅此问题以供参考
How to inspect FormData?
这真的很糟糕......所以直到我准备好服务器端代码并且我实际上 POST 我无法判断文件是否真的被附加了。我确信它是但是我无法验证这一点。
我有以下输入元素:
<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 对象。文件对象没有被追加??
我认为这可能与我在 UploadFIle 函数外部声明 $scope.fd 有关,但即使在函数内部声明它也不起作用...
为什么???
嗯,我知道这是怎么回事了。它与 AngularJs 无关。您无法检查添加到 FormData 对象的键。请参阅此问题以供参考
How to inspect FormData?
这真的很糟糕......所以直到我准备好服务器端代码并且我实际上 POST 我无法判断文件是否真的被附加了。我确信它是但是我无法验证这一点。