圖片FormData上傳


var base64String = /*base64圖片串*/;

//這里對base64串進行操作,去掉url頭,並轉換為byte
var bytes = window.atob(base64String.split(',')[1]);

//處理異常,將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); //這里有點疑惑,ia是怎么改變ab的?注:①
}
//Blob對象
var blob = new Blob([ab], {type: 'image/jpeg'}); //type為圖片的格式

//FormData對象
var fd = new FormData();
//TDOD Ajax或者其他方式上傳FormData對象

//FormData對象接受三個參數,第三個參數為文件名,通常我們只傳前兩個參數,第三個參數不傳則使用默認文件名,這里使用的Blob對象,所以需要一個文件名,用時間戳代替。
fd.append('file',blob, Date.now() + '.jpg');
第二種:
var array = [];
for(var i = 0; i < bytes.length; i++){
    array.push(bytes.charCodeAt(i));
}
var blob = new Blob([new Uint8Array(array)], {type: 'image/jpeg'});
var fd = new FormData();
fd.append('file',blob, Date.now() + '.jpg');
//TDOD Ajax或者其他方式上傳FormData對象

原理:利用ArrayBuffer、Blob和FormData進行圖片上傳


免責聲明!

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



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