日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

md5验证文件上传,确保信息传输完整一致

發(fā)布時間:2023/12/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 md5验证文件上传,确保信息传输完整一致 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

注:因為是公司項目,僅記錄方法和思路以及可公開的代碼。

最近在公司的項目中,需要實現(xiàn)一個上傳升級包到服務(wù)器的功能;

在往服務(wù)器發(fā)送文件的時候,需要確保 文件從開始發(fā)送,到存入服務(wù)器磁盤的整個傳輸?shù)倪^程沒有發(fā)生變動;

這時候想起了MD5;

關(guān)于MD5:

MD5值就像是這個文件的“數(shù)字指紋”,每個文件的MD5值是不同的。

如果任何人對文件做了任何改動,其MD5值也就是對應(yīng)的“數(shù)字指紋”就會發(fā)生變化。

MD5就可以為任何文件(不管其大小、格式、數(shù)量)產(chǎn)生一個同樣獨一無二的“數(shù)字指紋”;

?

計算MD5值并自動的工具:

get_filemd5sum: function (ofile) {var file = ofile;var tmp_md5;var blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice,chunkSize = 8097152, // Read in chunks of 2MBchunks = Math.ceil(file.size / chunkSize),currentChunk = 0,spark = new SparkMD5.ArrayBuffer(),fileReader = new FileReader();fileReader.onload = function (e) {spark.append(e.target.result); // Append array buffercurrentChunk++;var md5_progress = Math.floor((currentChunk / chunks) * 100);console.log(file.name + " 正在處理,請稍等," + "已完成" + md5_progress + "%");if (currentChunk < chunks) {loadNext();} else {tmp_md5 = spark.end();$("#fileBatch").val(tmp_md5);console.log("MD5值是:" + tmp_md5);}};fileReader.onerror = function () {console.warn('oops, something went wrong.');};function loadNext() {var start = currentChunk * chunkSize,end = ((start + chunkSize) >= file.size) ? file.size : start + chunkSize;fileReader.readAsArrayBuffer(blobSlice.call(file, start, end));}loadNext();} View Code

注:使用需要微改。

調(diào)用:

get_filemd5sum(File);

效果:

選擇文件前:

選擇文件后:

如果文件比較大,生生需要一點點時間

最后:

最后將文件和本頁面的MD5驗證碼發(fā)送到服務(wù)器后臺,后臺再讀取收到的文件,再計算MD5,最后和在上傳前的MD5驗證,如果驗證通過就添加記錄,否則刪除文件。

?

轉(zhuǎn)載于:https://www.cnblogs.com/ynhwl/p/10284306.html

總結(jié)

以上是生活随笔為你收集整理的md5验证文件上传,确保信息传输完整一致的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。