欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

如何解決處理base64編碼文件大小不能超過71MB的問題

呂致盈2年前31瀏覽0評論

如何解決處理base64編碼文件大小不能超過71MB的問題?

base64只是一種二進(jìn)制轉(zhuǎn)換字符的編碼方式而已,并不存在什么位數(shù)限制。這多大的數(shù)據(jù)都能編碼,這是毫無疑問的。

所以你編碼71M文件時出錯,很明顯是你使用的轉(zhuǎn)換庫有問題。

這個報(bào)錯很明顯是這個庫編碼base64時,直接把輸出的base64編碼存到了一個字符串變量里去,導(dǎo)致字符串變量數(shù)據(jù)過大,從而益出報(bào)錯。

所以解決方案很簡單,不要直接去對71M的數(shù)據(jù)進(jìn)行轉(zhuǎn)換。

一 你可以在讀取圖片的時候,不要一次性把圖片全部加載到內(nèi)存里,而是寫一個循環(huán),按照固定的位數(shù)去讀區(qū)。絕大多數(shù)語言的read()方法都支持位讀取。

這樣一塊一塊的編碼就不會溢出了。

二 你也可以使用緩沖區(qū)而不是變量,先把圖片讀到緩沖區(qū)中,然后同上,按照位數(shù)分片轉(zhuǎn)換。

最后要注意,輸出結(jié)果的時候,千萬不能把結(jié)果直接累加在一個變量中,這樣一樣會溢出。

你可以

一 分片轉(zhuǎn)換,然后分片直接打印

二 分片的把結(jié)果寫入一個文件中

三 直接分片進(jìn)行網(wǎng)絡(luò)傳輸,客戶端在進(jìn)行組合。

四 用數(shù)組,堆,字典等等復(fù)雜數(shù)據(jù)結(jié)構(gòu)來儲存結(jié)果。