base64轉為圖片檔案上傳到伺服器
阿新 • • 發佈:2019-02-04
methods:{
base64ToBlob(urlData) {
var arr = urlData.split(',');
var mime = arr[0].match(/:(.*?);/)[1] || 'image/png';
// 去掉url的頭,並轉化為byte
var bytes = window.atob(arr[1]);
// 處理異常,將ascii碼小於0的轉換為大於0
var ab = new ArrayBuffer(bytes.length);
// 生成檢視(直接針對記憶體):8位無符號整數,長度1個位元組
var ia = new Uint8Array(ab);
for (var i = 0; i < bytes.length; i++) {
ia[i] = bytes.charCodeAt(i);
}
return new Blob([ab], {
type: mime
});
},
getImgUrl(){
let that = this;
html2canvas(document.querySelector("#exitImg"),opts).then(canvas => {
console.log(canvas)
var dataUrl = canvas.toDataURL();
let fileImg = that.base64ToBlob(dataUrl)
var fd = new FormData()
fd.append('file', fileImg,"image.jpg")
let config = {
headers: {
'Content-Type': 'multipart/form-data'
}
}
axios.post(that.uploadUrl, fd,config).then( res => {
console.log(res)
}).catch( res => {
console.log(res)
})
});
}
},
mounted:function(){
this.getImgUrl()
}