【问题标题】:Restrict uploaded image size Camera plugin cordova ionic限制上传的图像大小相机插件cordova ionic
【发布时间】:2018-02-14 22:44:50
【问题描述】:

我在我的 ionic 应用程序中使用相机插件获取了图像。我想限制用户选择的图像大小,比如说 200kb。我已将相机添加为文件插件。

我使用了以下代码:

/*Function to get image from gallery*/
$scope.getImageFromGallery = function(){
    var options = {
        quality: 100,
        destinationType: Camera.DestinationType.FILE_URI,
        sourceType: Camera.PictureSourceType.SAVEDPHOTOALBUM,
        popoverOptions: CameraPopoverOptions,
        saveToPhotoAlbum: false,
        targetWidth: 450,
        targetHeight: 450,
        encodingType: Camera.EncodingType.JPEG,
    };

    navigator.camera.getPicture(gallerySuccess, galleryError, options);

    function gallerySuccess(imageURI){
        getSize(imageURI);          
    }


    function getSize(fileUri) {
        window.resolveLocalFileSystemURL(fileUri, function(fileEntry){

            fileEntry.getMetadata(function(metadata){
                console.log("size is "+metadata.size);
            }, resOnError);

            fileEntry.file(function(file) {

                var reader = new FileReader();
                reader.onloadend = function(evt) {

                    var imgData = evt.target.result;
                    var res = imgData.split(",");
                    $rootScope.imagebase64 = res[1];
                    var image = document.getElementById('preview-image1');
                    image.src = evt.target.result;
                    $('#preview-image').css('display','block');
                    $('#preview-image').css('background-image', "url("+res[1]+")").show();
                };

                reader.readAsDataURL(file);
            }, resOnError);
        },
        resOnError);
    }

    function resOnError(error) {
        console.log("error "+JSON.stringify(error));
    }

    function galleryError(error) {
    }
}

但是在这里,当我选择 2.5MB 的图像时,它显示的大小为 178908 当我选择大小为 8.9MB 的图像时,它显示大小为 88412。

据我所知,文件大小以字节为单位,但我得到的值不正确。

【问题讨论】:

    标签: cordova ionic-framework cordova-plugins


    【解决方案1】:

    试试这个解决方案,你的 150kb 只需将其更改为 200kb

      window.resolveLocalFileSystemURI(newPath, function (fileEntry) {
                            fileEntry.file(function (fileObj) {
                                if (fileObj.size <= 153600) {
                                    var reader = new FileReader();
                                    reader.onload = function () {
                                        var dataURL = reader.result;
                                        //your stuff.....
                                    };
                                    reader.readAsDataURL(fileObj);
                                }
                                else {
                                    //  alert("Please upload image less then 150KB");
                                    alertPopup = $ionicPopup.alert({
                                        title: 'Upload image failed!',
                                        template: 'Please upload image less then 150KB!'
                                    });
                                }
    
                                console.log("Size = " + fileObj.size);
                            });
                        });
    

    【讨论】:

      猜你喜欢
      • 2015-09-24
      • 2017-10-25
      • 2016-12-17
      • 2016-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-16
      相关资源
      最近更新 更多