Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Прочитайте двоичный файл в Javascript и сделайте qr-код

Автор вопроса: h0m3l3ssОтветов: 1

Мне нужно прочитать файл без расширения на веб-странице, а затем закодировать этот файл в QR-коде в двоичном режиме.

Чтобы кодировать двоичный код, я нашел эту библиотеку, и я думаю, что она хороша: https://github.com/nayuki/QR-Code-generator/blob/master/javascript/qrcodegen.js

Но для первой части, прочитайте файл и не изменяйте его, не кодируйте его как текст или что-то еще, я не могу понять, как это сделать.

Какой лучший выбор? Успехом может быть просто чтение этого файла и разрешение странице загрузить файл, который я прочитал, чтобы проверить, что это тот же файл.

  • Вы должны дать нам что-то, что вы сделали. не просто спрашивая, что я могу сделать MajiD 12.07.2018
  • Я ничего не делал, я написал страницу, в которой у меня есть селектор файлов и кнопка. Я сломал себе голову, обнаружив эту библиотеку кода qr (трудно найти библиотеку js кода qr, которая поддерживает двоичное кодирование и хорошо документирована). Для чтения, я думаю, это путь (developer. mozilla.org/en-US/docs/Web/API/FileReader/), но теперь я не могу получить работающий скрипт. Я много читал об этом, но нашел старый и устаревший код. Я просто спрашиваю библиотеку. h0m3l3ss 12.07.2018
  • Довольно непонятно, что вы пытаетесь здесь спросить. Откуда этот файл, который вы пытаетесь прочитать? А из какого файла вы пытаетесь сделать QR-код? Это кажется странным, поскольку QR-коды обычно могут хранить только около 3 КБ или меньше данных..... Claies 12.07.2018
  • И если, как предполагает ваш недавний комментарий, все, что вы пытаетесь сделать, это получить рекомендации для библиотеки, вы должны знать, что такой вопрос не по теме для этого сайта. Claies 12.07.2018
  • Мне нужно закодировать зашифрованный файл размером менее 600 байт h0m3l3ss 12.07.2018
  • Я прочитал в stackoverflow много старых дискуссий об этой задаче, я не написал ни одной строки кода, просто прочитал о всевозможных возможностях, но никто не работал. h0m3l3ss 12.07.2018

javascriptfilebinaryqr-code

Ответы

Ответ 1 · h0m3l3ss

хорошо, я правильно обработал:

$("#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);


});

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы