功能需求 1.圖片轉base64 2.base 64 轉二進位數組 3.保存二進位數據到文件下載到本地 解決方法 問題1: 參考資料 vue element upload圖片 轉換成base64 具體代碼 getBase64(file) { return new Promise(function ( ...
功能需求
解決方法
問題1:
參考資料
vue element upload圖片 轉換成base64
具體代碼
getBase64(file) { return new Promise(function (resolve, reject) { let reader = new FileReader(); let imgResult = ""; reader.readAsDataURL(file); reader.onload = function () { imgResult = reader.result; }; reader.onerror = function (error) { reject(error); }; reader.onloadend = function () { resolve(imgResult); }; }); } beforeUpload(file) { this.getBase64(file).then(res => { console.log(res); }) }
問題2
參考資料
具體代碼
beforeUpload(file) { var fileName = file.name || '' this.getBase64(file).then(res => { // console.log(res); //二進位數組轉換 var bytes = window.atob(res.split(',')[1]); //去掉url的頭,並轉換為byte //處理異常,將ascii碼小於0的轉換為大於0 var ab = new ArrayBuffer(bytes.length); var ia = new Uint8Array(ab); for (var i = 0; i < bytes.length; i++) { ia[i] = bytes.charCodeAt(i); } console.log("ia", ia) });
}
問題3
參考資料
具體實施
參考資料裡面的方法二
具體代碼
function downFile(json1) { var elementA = document.createElement('a'); elementA.setAttribute('href', 'data:text/plain;charset=utf-8,' + json1); elementA.setAttribute('download', +new Date() + ".txt"); elementA.style.display = 'none'; document.body.appendChild(elementA); elementA.click(); document.body.removeChild(elementA); }, beforeUpload(file) { var fileName = file.name || '' this.getBase64(file).then(res => { // console.log(res); //二進位數組轉換 var bytes = window.atob(res.split(',')[1]); //去掉url的頭,並轉換為byte //處理異常,將ascii碼小於0的轉換為大於0 var ab = new ArrayBuffer(bytes.length); var ia = new Uint8Array(ab); for (var i = 0; i < bytes.length; i++) { ia[i] = bytes.charCodeAt(i); } this.downFile(ia) console.log("ia", ia) }); }