1
0
Fork 0
mirror of https://github.com/codedread/bitjs synced 2025-10-03 17:49:16 +02:00
bitjs/tests/test-uploader.js
2017-02-19 11:56:55 -08:00

69 lines
1.9 KiB
JavaScript

/*
* test-uploader.js
*
* Provides readers for byte streams.
*
* Licensed under the MIT License
*
* Copyright(c) 2017 Google Inc.
*/
/**
* TODO:
* - ask user to choose the archived binary file
* - read it in as bytes, convert to text
* - ask user to choose the unarchived file
* - put the binary and text results together in a JSON blob:
{
"archivedFile": ...,
"unarchivedFIle": ...
}
*/
var archiveUploaderEl = null;
var archivedFileAsText = null;
var unarchiveUploaderEl = null;
var unarchivedFileAsText = null;
function init() {
archiveUploaderEl = document.querySelector('#archive-uploader');
unarchiveUploaderEl = document.querySelector('#unarchive-uploader');
archiveUploaderEl.addEventListener('change', getArchivedFile, false);
unarchiveUploaderEl.addEventListener('change', getUnarchivedFile, false);
}
function getArchivedFile(evt) {
var filelist = evt.target.files;
var fr = new FileReader();
fr.onload = function() {
var arr = new Uint8Array(fr.result);
archivedFileAsText = btoa(arr);
archiveUploaderEl.setAttribute('disabled', 'true');
unarchiveUploaderEl.removeAttribute('disabled');
};
fr.readAsArrayBuffer(filelist[0]);
}
function getUnarchivedFile(evt) {
var filelist = evt.target.files;
var fr = new FileReader();
fr.onload = function() {
var arr = new Uint8Array(fr.result);
unarchivedFileAsText = btoa(arr);
unarchiveUploaderEl.setAttribute('disabled', 'true');
output();
};
fr.readAsArrayBuffer(filelist[0]);
}
function output() {
var json = 'window.archiveTestFile = {\n';
json += ' "archivedFile": "' + archivedFileAsText + '",\n';
json += ' "unarchivedFile": "' + unarchivedFileAsText + '"\n';
json += '}';
window.open('data:application/json;utf8,' + json);
}
// To turn the base64 string back into bytes:
// new Uint8Array(atob(archivedFileAsText).split(',').map(s => parseInt(s)))