javascript - 读取二进制文件时出错

标签 javascript filereader typed-arrays

我正在尝试用 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/

相关文章:

javascript - 在同一个 html 页面上使用不同的 D3 版本

javascript - Bootstrap 无法在管理模板下运行

javascript - 我可以根据文本的值更改类别吗?

java - 读取文本文件(约 90,000 个单词)并尝试将每个单词添加到字符串 ArrayList 中

javascript - FileReader:对象不是函数

java - getTypedArray 调用后 TypedArray 为空

javascript - 在 Javascript 中将字符串转换为类型化数组

javascript - 如何给 HTML5 Canvas 色轮添加触摸事件?

javascript - 在 JavaScript 中获取动态文件输入的 FileReader 结果

JavaScript 类型数组 : 64-bit integers?