色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

base64通過json傳遞至后端

阮建安2年前8瀏覽0評論

在前后端分離的 Web 應用中,前端往往需要把圖片或其他二進制數據傳遞到后端,以便進行一些處理,而 base64 編碼是一種常用的方式。Base64 是一種將二進制數據編碼成 ASCII 字符的方法,通常用于在不支持二進制數據傳輸的場景下進行數據傳輸。

在前端,我們可以使用 JavaScript 的 atob 和 btoa 方法進行 Base64 編解碼。

// 將文件轉換為 base64 編碼
function fileToBase64(file) {
return new Promise((resolve, reject) =>{
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () =>{
const base64Str = reader.result.split(',')[1];
resolve(base64Str);
};
reader.onerror = reject;
});
}
// 將 base64 編碼轉換為文件
function base64ToFile(base64Str) {
const arr = base64Str.split(',');
const mime = arr[0].match(/:(.*?);/)[1];
const bstr = atob(arr[1]);
let n = bstr.length;
const u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], Math.random().toString(36).slice(-8), { type: mime });
}

在使用 Base64 編碼傳遞數據時,我們通常要考慮到傳輸量過大的問題。因為 Base64 編碼會使數據的大小增加約三分之一,所以對于大文件或者大規模數據的傳輸,最好對其進行壓縮。在 JavaScript 中,我們可以使用 Pako.js 庫進行數據壓縮。

// 壓縮數據
function compressData(data) {
return pako.gzip(data);
}
// 解壓數據
function decompressData(compressedData) {
return pako.ungzip(compressedData, { to: 'string' });
}

在前端將數據進行壓縮后,我們需要將其轉換成字符串類型的 JSON 數據,并通過 AJAX 請求或其他方式傳遞到后端。在后端,我們可以使用相應語言提供的 Base64 解碼庫進行解碼,然后再進行其他操作。

總的來說,Base64 編碼是前端進行二進制數據傳輸的常用方式,但要注意到它會使數據量大大增加,需要適時進行壓縮。