我编写了一个网络应用程序,在一个屏幕上,用户可以上传文档,在第二个屏幕上,他可以查看此文档 文档保存在二进制数组中 现在我必须将其转换回文档。 我正在使用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_);
}
});
}
};
});