js使用FileReader和Google的md5.js计算文件的MD5值

来源:互联网 发布:如何查询别人淘宝id 编辑:程序博客网 时间:2024/06/05 00:34

js使用FileReader和Google的md5.js计算文件的MD5值

<body><input id="input_md5" type="file" multiple="multiple"></input><div class="progress progress-striped active progress-success">          <div id="div_load" style="width: 40%" class="bar"></div>    </div>        <div id="md5_show"></div></body><script type="text/javascript">var message = [];if(!document.getElementById("input_md5").files){message = '<p>浏览器不支持FileReader API</p>';  document.querySelector("body").innerHTML = message;}else{document.getElementById('input_md5').addEventListener('change', handleFileSelection, false);}function handleFileSelection(event) {var files = event.target.files;if(!files){  msa.alert("<p>At least one selected file is invalid - do not select any folders.</p><p>Please reselect and try again.</p>");    return;}var file = files[0];var chunkSize = 204800;var pos = 0;var md5Instance = CryptoJS.algo.MD5.create();var reader = new FileReader();function progressiveReadNext(){var end = Math.min(pos + chunkSize, file.size);reader.onload = function(e) {pos = end;md5Instance.update(CryptoJS.enc.Latin1.parse(e.target.result));var present = (parseFloat(pos)/parseFloat(file.size))*10000/100;$("#div_load").css("width",Math.round(present) +"%");if (pos < file.size) {progressiveReadNext();} else {var md5Value = md5Instance.finalize();console.log(md5Value.toString());$("#md5_show").html(md5Value.toString());}}if (file.slice) {var blob = file.slice(pos, end);} else if (file.webkitSlice) {var blob = file.webkitSlice(pos, end);}else if(File.prototype.mozSlice){var blob = file.mozSlice(pos, end);}reader.readAsBinaryString(blob);}progressiveReadNext();}</script>



笔记

备忘录

代码块

0 0
原创粉丝点击