javascript - 从 ng-change 获取文件

标签 javascript angularjs file-upload fileapi

如何将其转换为可兼容的 angular.js,以便我获取 dataurl 并通过 $http.post 发送

<input type="file" id="imgfiles" name="imgfiles" accept="image/jpeg" onchange="readURL(this);">


function readURL(input) {
    if (input.files[0].size <= 1048576) {
        if (input.files && input.files[0]) {
            var reader = new FileReader();
            reader.onload = function (e) {
                $('#cam_photo').attr('src', e.target.result).width(250).height(230);
                var a = $('#cam_photo').attr('src');
                data_url = a;
            };
            reader.readAsDataURL(input.files[0]);
        }
    } else {
        alert('File is too large. Upload file less than 1MB');
    }
}

最佳答案

使用angular.element(this).scope()获取范围

试试这个:

onchange="angular.element(this).scope().readURL(this)"

然后,在 Controller 中写入 $scope.readURL(input) 代码

$scope.readURL = function(input) {
    if (input.files[0].size <= 1048576) {
        if (input.files && input.files[0]) {
            var reader = new FileReader();
            reader.onload = function (e) {
                $('#cam_photo').attr('src', e.target.result).width(250).height(230);
                var a = $('#cam_photo').attr('src');
                data_url = a;
            };
            reader.readAsDataURL(input.files[0]);
        }
    } else {
        alert('File is too large. Upload file less than 1MB');
    }
}

关于javascript - 从 ng-change 获取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21699108/

相关文章:

php - 关于在 php 中上传 csv 文件不清楚

c# - 不要覆盖通过 FileUpload 控件上传的文件

javascript - AngularJS ng-重复嵌套对象

javascript - jQuery基于mouseenter/leave的slideToggle菜单

javascript - 如何根据重复键合并/组合对象数组?

javascript - 在 Ionic Framework (AngularJS) 中获取和设置复选框

Grails文件上传-如何识别文件和/或内容类型?

javascript - 根据值用渐变颜色填充栏

javascript - AngularJS 不以与常规 HTML 相同的方式应用 CSS?

javascript - AngularJS Controller 中的重构函数