通過Base64編碼的長度計算文件大小



前言


在一些業務場景下,我們會將文件或圖片轉化為Base64編碼進制傳輸,而業務中有需要對文件的大小進行限制,如何在不進行解碼的情況下判斷出文件的大小呢。


編碼格式


Base64編碼要求把3個8位字節(38=24)轉化為4個6位的字節(46=24),之后在6位的前面補兩個0,形成8位一個字節的形式。
如果剩下的字符不足3個字節,則用0填充,輸出字符使用'=',因此編碼后輸出的文本末尾可能會出現1或2個'='。
為了保證所輸出的編碼位可讀字符,Base64制定了一個編碼表,以便進行統一轉換。編碼表的大小為2^6=64,這也是Base64名稱的由來。


文件大小計算


由Base64編碼的性質可知,原文件在經由Base64編碼后,體積會增長1/3。 1 → 4/3
反之,Base64字符串中的4個字符即對應原文件的3字節。
那么計算原文件的大小只需要得出Base64字符串的長度,再乘以0.75即可。該方法可能存在1Byte的大小誤差,計算出的大小可能比真實大小多1Byte,也可能與真實文件大小正好相等。


參考:
https://www.cnblogs.com/bigorang/p/10702944.html
http://cn.voidcc.com/question/p-oameqciv-xg.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM