HexDump файла в виде строки
Всем привет!
Читаю файл как readAsArrayBuffer(file). Подскажите, как его лучше сконвертировать в строку без потери нулей? Т.е. строка должна быть вида "00001200340054". |
а можете показать то что вы сделали? и показать где идет не так как надо
|
var reader = new FileReader();
reader.onload = function(event) { var contents = event.target.result; var binaryString = '', bytes = new Uint16Array(contents), length = bytes.length; for (var i = 0; i < length; i++) { binaryString += String.fromCharCode(bytes[i]); } document.getElementById('test').value = binaryString; console.log (binaryString); }; Я пытаюсь передать binaryString на сервер через input/post. Но на сервере в итоге эта переменная оказывается undefined. |
вы случайно не хотите передать файл по частям, если да, то вот ссылка:
https://gist.github.com/shiawuen/1534477 если нет, то могу предположить, что чтото не то с кодировкой |
кстати а почему 16, если передается бинарник? должно быть 8.
1 байт - 8 бит, но не 16 <html> <head> </head> <body> <input type="file"> <div></div> <script> document.querySelector('input').onchange = function (e) { var file = e.target.files[0]; var reader = new FileReader(); reader.onload = function(e) { bytes = new Uint8Array(e.target.result); console.log(bytes); } reader.readAsArrayBuffer(file); }; </script> </body> </html> |
Тебе не hex-дамп нужен, а base64. window.btoa().
|
Можно тупо текстовой строкой передавать, string может содержать любые символы.
|
Часовой пояс GMT +3, время: 13:02. |