【问题标题】:Read a binary file in Javascript and make a qr code用Javascript读取二进制文件并制作二维码
【发布时间】:2018-12-20 01:30:18
【问题描述】:

我需要在网页中读取一个没有扩展名的文件,然后将该文件以二维码的方式编码为二维码。

为了编码二进制我找到了这个库,我认为它很好:https://github.com/nayuki/QR-Code-generator/blob/master/javascript/qrcodegen.js

但是对于第一部分,读取文件并且不要修改它或将其编码为文本或其他内容,我无法理解如何去做。

什么是最好的选择?成功可能只是读取该文件并允许该页面下载我已读取的文件以检查该文件是否相同。

【问题讨论】:

  • 您需要向我们提供您所做的事情。不只是问我能做什么
  • 我什么都没做,我写了一个页面,其中有一个文件选择器和一个按钮。我发现那个二维码库(很难找到支持二进制编码并且有据可查的二维码js库)。对于阅读的东西,我认为这是方式(developer.mozilla.org/en-US/docs/Web/API/FileReader/…),但现在我无法获得工作脚本。我读了很多关于这个,但我发现旧的和不推荐使用的代码。我只是在问图书馆。
  • 目前还不清楚您要在这里问什么。您要读取的文件来自哪里?您尝试使用哪种文件制作 QR 码?这似乎是一件奇怪的事情,因为二维码通常只能存储大约 3kb 或更少的数据.....
  • 如果,正如您最近的评论所暗示的,您所要做的只是获得图书馆的推荐,您应该知道这类问题与本网站无关。
  • 您的评论仍然具有误导性......您说“我什么都没做”,但随后详细说明(仍然过于简短)一些使用文件阅读器的尝试,并说您是“无法获得工作脚本”,这意味着您至少 try 写了一些不起作用的东西.... 这就是我们想要的看;我们可以帮助您找出失败的尝试出了什么问题。

标签: javascript file binary qr-code


【解决方案1】:

好的,我处理正确:

$("#pwbutton").click(function(e) {
  e.preventDefault();

  var file = document.getElementById('customFile').files[0];

  var fr = new FileReader();

  fr.onloadend = function(e) {
    console.log(e.target.result);
    var readed = e.target.result;

    var QRC = qrcodegen.QrCode;
    var segs = qrcodegen.QrSegment.makeSegments(String.fromCharCode.apply(null, new Uint8Array(e.target.result)));
    var qr = QRC.encodeSegments(segs, QRC.Ecc.LOW, 19, 19, -1, true);
    var canvas = document.getElementById("qrcode-canvas");
    qr.drawCanvas(3, 0, canvas);

    $('#qresult').show();
  };

  fr.readAsArrayBuffer(file);


});

【讨论】:

  • 你应该使用QrSegment.makeBytes()。不要乱用String.fromCharCode()
猜你喜欢
  • 1970-01-01
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多