如何解決處理base64編碼文件大小不能超過71MB的問題?
base64只是一種二進制轉換字符的編碼方式而已,并不存在什么位數限制。這多大的數據都能編碼,這是毫無疑問的。
所以你編碼71M文件時出錯,很明顯是你使用的轉換庫有問題。
這個報錯很明顯是這個庫編碼base64時,直接把輸出的base64編碼存到了一個字符串變量里去,導致字符串變量數據過大,從而益出報錯。
所以解決方案很簡單,不要直接去對71M的數據進行轉換。
一 你可以在讀取圖片的時候,不要一次性把圖片全部加載到內存里,而是寫一個循環,按照固定的位數去讀區。絕大多數語言的read()方法都支持位讀取。
這樣一塊一塊的編碼就不會溢出了。
二 你也可以使用緩沖區而不是變量,先把圖片讀到緩沖區中,然后同上,按照位數分片轉換。
最后要注意,輸出結果的時候,千萬不能把結果直接累加在一個變量中,這樣一樣會溢出。
你可以
一 分片轉換,然后分片直接打印
二 分片的把結果寫入一個文件中
三 直接分片進行網絡傳輸,客戶端在進行組合。
四 用數組,堆,字典等等復雜數據結構來儲存結果。
上一篇超星搜索引擎有哪些特點
下一篇導入a類使用哪條語句