input read file content

reference : https://www.html5rocks.com/en/tutorials/file/dndfiles/

by Daehyun Im

HTML

<input type="file" name="privateKeyPair" id="privateKeyPair" data-name="privateKeyPair" onchange="javascript:get_file_content();">
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>

JavaScript

// file_content 가져오기
function get_file_content() {
    var files = document.getElementById('privateKeyPair').files;
    var file = files[0];

    var reader = new FileReader();
    var binary = 0;

    var blob = file.slice(0, file.size);
    reader.readAsBinaryString(blob);
    
    reader.onloadend = function(evt) {

        if (evt.target.readyState == FileReader.DONE) { // DONE == 2
            binary = evt.target.result;
        }

        alert(binary);
        console.log(binary);
    };
}

//extend FileReader
// IE 호환성을 위한 함수 추가
if (!FileReader.prototype.readAsBinaryString) {
    FileReader.prototype.readAsBinaryString = function (fileData) {
        var binary = "";
        var reader = new FileReader();

        reader.onload = function (e) {
            var bytes = new Uint8Array(reader.result);
            var length = bytes.byteLength;
            for (var i = 0; i < length; i++) {
                binary += String.fromCharCode(bytes[i]);
            }
            updatePassword(binary);
        };
        reader.readAsArrayBuffer(fileData);
    }
}