请问老师,如果完整实现分块上传模块,如何在客户端计算文件hash值?
来源:6-6 分块上传场景测试+小结
眼闭则花寂
2019-05-15
写回答
1回答
-
一般pc/android/ios都有各自的库来计算文件hash的,比如android这个:
https://stackoverflow.com/questions/5980658/how-to-sha1-hash-a-string-in-android另外,如果是web端的话,一般不建议采用分块上传,因为通过javascript来计算文件hash效率是比较低的,而且较耗内存;所以行业一般做法是,web端支持上传的文件大小有限制,比如最大不超过500MB, 然后采取普通上传的方式完成传输。
当然如果是要在web端进行文件hash计算的话, 一种方法可以通过CryptoJS库来完成, 比如:
<script src="https://cdn.bootcss.com/crypto-js/3.1.9-1/crypto-js.min.js"></script> <script> var reader = new FileReader(); reader.onload = function(event){ var res = event.target.result; var sha1 = CryptoJS.SHA1(res).toString(); console.log(sha1); }; reader.readAsBinaryString(file); </script>
042019-05-26