js base64 轉成圖片上傳
阿新 • • 發佈:2018-12-27
直接上程式碼,要點就是把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"));