如何在AngularJS中上传文件?

时间:2015-05-27 18:41:54

标签: javascript angularjs

无法使用AngularJS创建文件上传。 有一个表格:

<form ng-submit="getElem()" ng-repeat="elem in elems" class="update-form">
    <label for="name">Elem name: {{elem.name}}</label>
    <input type="file" id="file" name="file" />
    <button type="button" ng-click="addImage()" class="btn btn-success">
        <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
        Add
    </button>
</form>

我在AngularJS中有一个方法:

 $scope.addImage = function () {
        $scope.data = 'none';
            var f = document.getElementById('file').files[0],
                r = new FileReader(),
                currentElem = this.elem.id;
            r.onloadend = function(e){
                $scope.data = e.target.result;
                var updateUrl = 'https://example/find' + currentElem + '/images';
                    $http.post(updateUrl, $scope.data)
                        .success(function (data, status, headers, config) {
                            console.info('Update image fine!');
                        });
            }
            r.readAsBinaryString(f);

单击“添加”按钮后,出现错误“TypeError:在'FileReader'上执行'readAsBinaryString'失败:参数1不是'Blob'类型。” 为什么会这样?我如何解决这个问题,因为我需要上传文件?

1 个答案:

答案 0 :(得分:0)

尝试以下功能

{{1}}