我正在尝试用 JavaScript 读取二进制文件。
但是,它没有返回任何内容。下面的命令有什么问题?
function autenticarbiometria() {
var fileInput = document.getElementById('fileInput');
var file = fileInput.files[0];
var reader = new FileReader();
var campo = "";
var status = "f";
filereader.onload = function(e) {
var campo = reader.result;
document.getElementById('template').value = campo;
alert("CAMPO TAMANHO --> " + campo.length);
}
reader.readAsArrayBuffer(file);
...
最佳答案
ArrayBuffer
不能设置为字符串。如果二进制数据不可打印,您需要将内容转换为字符串或 Base-64/十六进制表示形式。
对于文本,您可以使用新的 TextDecoder对象(在某些浏览器中可能需要 polyfill)。
示例
var td = new TextDecoder("utf-8"); // or use utf-16 etc. depending on what you expect
var txt = td.decode(campo); // pass in the ArrayBuffer
现在 txt
可以设置为元素的字符串源(如果可读)。
另请注意,您有一个 campo
本地变量,它会覆盖父变量 campo
。
关于javascript - 读取二进制文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30519203/