%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
<input type="file" id="input"> <output id="output"></output> <style> output::before { content: "output:"; } output { display: block; padding: 1em; margin: 1em; outline: 1px solid gray; white-space: pre-wrap; } </style> <script src="../dist/md5.min.js"></script> <script> function readAsArrayBuffer(file){ return new Promise(function(resolve) { var reader = new FileReader(); reader.readAsArrayBuffer(file) reader.onload = function(e) { resolve(e.target.result) }; }); } input.onchange = function(e) { var file = input.files[0]; readAsArrayBuffer(file) .then(buffer => { console.log(buffer); var now = performance.now(); var hash = MD5(buffer); var after = performance.now() - now; output.innerHTML = ` file: ${file.name} size: ${file.size} bytes type: ${file.type} md5: ${hash} duration: ${after.toFixed(2)} ms `; }) } </script>