在javascript中表示来自字节的文件

时间:2017-10-03 07:01:02

标签: javascript

我编写了一个网络应用程序,在一个屏幕上,用户可以上传文档,在第二个屏幕上,他可以查看此文档 文档保存在二进制数组中 现在我必须将其转换回文档。 我正在使用stackoverflow.com/questions/35038884/download-file-from-bytes-in-javascript来解决它,

但是我得到了这个错误 -

  

DOMException:无法在'Window'上执行'atob':字符串为   解码后没有正确编码。

我认为那是因为字符串不是64位。

我能做些什么来解决它? 这是我用来将文件转换为byte[]的代码
我尝试将 - $fileContent再次转换为文件。

 pniotApp.directive('onReadFile', function ($parse) {
    return {
        restrict: 'A',
        scope: false,
        link:function (scope, element, attrs) {
            var fn = $parse(attrs.onReadFile);

            element.on('change',function (onChangeEvent) {

                var files = (onChangeEvent.srcElement || onChangeEvent.target).files;

                for (j = 0; j < files.length; j++) {
                    readerEngine(files[j]);
                }


                function readerEngine(file_) {

                    var reader = new FileReader();
                    reader.onload = function (onLoadEvent) {
                        var buffer = onLoadEvent.target.result;
                        var uint8 = new Uint8Array(buffer);
                        var result = [];
                        for (var i = 0; i < uint8.length; i++) {
                            result.push(uint8[i]);
                        }
                        scope.$apply(function () {
                            fn(scope,{
                                $fileContent:result,
                                $fileName: file_.name,
                                $fileSize:file_.size
                            });
                        });
                    };

                    reader.readAsArrayBuffer(file_);
                }
            });
        }
    };
});

0 个答案:

没有答案