FileReader readAsDataURL结果不完整

时间:2017-08-31 12:35:56

标签: android cordova base64 sapui5 filereader

我的问题与此问题Cordova - Reading Large Image corrupts image非常相似 但我没有在解决方案上取得任何成功。我还尝试使用Cordova的图像选择器插件

Cordova 7.0.1

Android 6.2.3

SapUI5 1.44.17

fileToBase64: function(fileUrl, callback) {
        window.resolveLocalFileSystemURL(fileUrl, function(fileEntry) {
            fileEntry.file(function(file) {
                var reader = new FileReader();
                reader.onload = function(evt) {
                    callback(evt.target.result);
                };
                reader.readAsDataURL(file);

            }, function(error) {
                console.log("File entry error " + error);
            });
        }, function(error) {
            console.log("Resolve system file error " + error);
        });
    },

返回的结果是不完整的base64字符串。这是我的图像循环

handleImagePicker: function(oEvent) {
        var _this = this;
        window.imagePicker.getPictures(
            function(results) {
                var numOfImagesLeftToProcess = results.length;
                if(numOfImagesLeftToProcess)
                    _this.appBusy(true);
                for (var i = 0; i < results.length; i++) {
                    _this.fileToBase64(results[i], function(base64Str) {
                        console.log(base64Str);
                        numOfImagesLeftToProcess--;
                        if(numOfImagesLeftToProcess == 0) {
                            _this.appBusy(false);
                        }
                    });
                }
            }, function (error) {
                console.log('Error: ' + error);
            },
            {
                //outputType: imagePicker.OutputType.BASE64_STRING // default .FILE_URI
            }
        );
    },

不确定是否过早调用回调。我能够在设备上查看图片,并且已经在两个不同版本的Android上的两个不同设备上测试了此代码。

任何帮助将不胜感激。

0 个答案:

没有答案