1. 程式人生 > >js base64 轉成圖片上傳

js base64 轉成圖片上傳

 

直接上程式碼,要點就是把base64轉成Blob,新增到FormData傳遞給後臺程式,跟選擇圖片檔案上傳時一樣的了。

 

var dataurl = canvas.toDataURL('image/png'); //base64圖片資料
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
    u8arr[n] = bstr.charCodeAt(n);
}
var obj = new Blob([u8arr], {type:mime});
var fd = new FormData();
fd.append("upfile", obj,"image.png");
$.ajax({
    url: "/file/upfile",
    type: "POST",
    processData: false,
    contentType: false,
    data: fd,
    success: function (data) {
        console.log(data);
    }
});

//canvas儲存圖片到本地 
(function(t){
    var dlLink = t || document.createElement("a");
    if(!t){
        dlLink.id='dlLink';
        dlLink.download = '檔名'; 
        document.body.appendChild(dlLink);
    }
    dlLink.href = dataurl;
    dlLink.click();
})(document.querySelector("#dlLink"));