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, время: 20:17. |