首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用angular-file-upload获取图像尺寸

如何使用angular-file-upload获取图像尺寸
EN

Stack Overflow用户
提问于 2014-08-26 09:09:33
回答 2查看 9.1K关注 0票数 6

我目前使用的是angular-file-upload指令,并且我使用的几乎是演示中的代码。

我需要在其中添加一个步骤来测试图像的尺寸,目前我只能通过jQuery/javascript执行此操作。

只是想知道是否有一种“角度”的方法来检查图片在上传之前的尺寸?

代码语言:javascript
复制
$scope.uploadImage = function($files) {
    $scope.selectedFiles = [];
    $scope.progress = [];

    if ($scope.upload && $scope.upload.length > 0) {
        for (var i = 0; i < $scope.upload.length; i++) {
            if ($scope.upload[i] !== null) {
                $scope.upload[i].abort();
            }
        }
    }
    $scope.upload = [];
    $scope.uploadResult = [];
    $scope.selectedFiles = $files;
    $scope.dataUrls = [];

    for ( var j = 0; j < $files.length; j++) {
        var $file = $files[j];
        if (/*$scope.fileReaderSupported && */$file.type.indexOf('image') > -1) {
            var fileReader = new FileReader();
            fileReader.readAsDataURL($files[j]);
            var loadFile = function(fileReader, index) {
                fileReader.onload = function(e) {
                    $timeout(function() {
                        $scope.dataUrls[index] = e.target.result;

                        //------Suggestions?-------//
                        $('#image-upload-landscape').on('load', function(){
                            console.log($(this).width());
                        });
                        //-------------------------//
                    });
                };
            }(fileReader, j);
        }
        $scope.progress[j] = -1;
        if ($scope.uploadRightAway) {
            $scope.start(j);
        }

    }
};
EN

回答 2

Stack Overflow用户

发布于 2015-05-15 11:30:19

我认为你可以这样做:

代码语言:javascript
复制
var reader = new FileReader();
reader.onload = onLoadFile;
reader.readAsDataURL(filtItem._file);

function onLoadFile(event) {
    var img = new Image();
    img.src = event.target.result;
    console.log(img.width, img.height)
}

这是从https://github.com/nervgh/angular-file-upload/blob/master/examples/image-preview/directives.js复制的代码片段。

我认为这是更多的角度。但是,您可能需要对其进行修改以满足您的要求。

票数 6
EN

Stack Overflow用户

发布于 2017-05-22 19:11:51

试试这段代码

代码语言:javascript
复制
uploader.filters.push({
        name: 'asyncFilter',
        fn: function(item /*{File|FileLikeObject}*/ , options, deferred) {
            setTimeout(deferred.resolve, 1e3);
             var reader = new FileReader();
            reader.onload = onLoadFile;
             reader.readAsDataURL(item);
                function onLoadFile(event) {
                    var img = new Image();
                    img.onload = function(scope) {
                       console.log(img.width,img.height);
                    }
                    img.src = event.target.result;
                }
        }

    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25496567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档