Я хотел бы извлечь двоичные данные из двоичного файла в массив байтов. У меня с трудом получается, чтобы он работал правильно.Извлечь содержимое двоичного файла в массив байтов с помощью angularjs
Вы можете увидеть jsFiddle здесь: https://jsfiddle.net/alexsuch/6aG4x/
В HTML:
<div ng-controller="MainCtrl" class="container">
<h1>Select text file</h1>
<input type="file" on-read-file="showContent($fileContent)" />
<div ng-if="content">
<h2>File content is:</h2>
<pre>{{ content }}</pre>
</div>
</div>
Javascript код:
var myapp = angular.module('myapp', []);
myapp.controller('MainCtrl', function ($scope) {
$scope.showContent = function($fileContent) {
$scope.content = $fileContent;
};
});
myapp.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 reader = new FileReader();
reader.onload = function(onLoadEvent) {
scope.$apply(function() {
fn(scope, {$fileContent:onLoadEvent.target.result});
});
};
reader.readAsText((onChangeEvent.srcElement || onChangeEvent.target).files[0]);
});
}
};
});
я поврежденную формат текста, как показано в следующем:
Что я делаю неправильно, это cau петь контент, который нужно исказить?
Вы хотите, чтобы отобразить или сохранить файл? Знаете ли вы, в каком формате был отправлен файл, buffer/base64? – chenop
Возможно, это может вам помочь: http://stackoverflow.com/questions/16245767/creating-a-blob-from-a-base64-string-in-javascript – chenop
Что вы хотите показать пользователю? Двоичные файлы - это двоичные файлы, вы хотите показать им значение байтов? Если это так, вы должны использовать функцию для преобразования массива байтов в шестнадцатеричную строку – Walfrat