获取文件MD5小案例(未拆分文件)
文章目录
-
- 前端获取MD5
- 后端获取MD5
前端获取MD5
1、引入js
<script src="js/spark-md5.min.js" type="text/javascript"></script>
注:spark-md5库GitHub链接
2、这里是一个按钮和被隐藏调的<input/>
标签
<body><button onclick="func()">按钮</button><input id="file" type="file" onchange="funcChange()" style="display: none;" /></body>
3、在按钮点击事件中触发<input/>
click事件,打开文档选择文件,选择后会触发onchange事件
function func() {document.getElementById('file').click();};
4、获取文件,计算MD5值
function funcChange() {var file = document.getElementById('file').files[0];var spark = new SparkMD5.ArrayBuffer();var fileReader = new FileReader();fileReader.readAsArrayBuffer(file)fileReader.onload = function(e){spark.append(e.target.result);console.info('computed hash', spark.end());}};
完整案例:
<!DOCTYPE html>
<html><head><script src="js/spark-md5.min.js" type="text/javascript"></script><script>/*** file_hash5*/function fileHash(file) {console.log("e.target.result")var spark = new SparkMD5.ArrayBuffer();var fileReader = new FileReader();fileReader.readAsArrayBuffer(file)fileReader.onload = function(e){spark.append(e.target.result);console.info('computed hash', spark.end());}}function funcChange() {var file = document.getElementById('file').files[0];fileHash(file)}/*** func函数*/function func() {document.getElementById('file').click();};</script></head><body><button onclick="func()">按钮</button><input id="file" type="file" onchange="funcChange()" style="display: none;" /></body>
</html>
后端获取MD5
try {File file = new File("文件路径");FileInputStream fileInputStream = new FileInputStream(file);byte[] bytes = fileInputStream.readAllBytes();MessageDigest md = MessageDigest.getInstance("MD5");byte[] digest = md.digest(bytes);StringBuffer hexValue = new StringBuffer();for (int i = 0; i < digest.length; i++) {int val = ((int) digest[i]) & 0xff;if (val < 16) {hexValue.append("0");}hexValue.append(Integer.toHexString(val));}System.out.println(hexValue);} catch (NoSuchAlgorithmException | IOException e) {e.printStackTrace();}