canvas利用formdata上傳到服務器

1.首先繪製canvas圖片web

<canvas id="myCanvas" width="100" height="100" style="border:1px solid #d3d3d3;border-radius:50%">
        您的瀏覽器不支持 HTML5 canvas 標籤。
</canvas>

這裏canvas繪圖就不是本文章講解的內容,咱們簡單的在畫布上寫兩個字:canvas

var canvas = document.getElementById("myCanvas");
var ctx = this.c.getContext("2d");
ctx.textAlign = 'left';
ctx.textBaseline = 'top';
ctx.font = 'bold 16px arial';
ctx.fillStyle = 'red';
ctx.fillText('World', 40,40);

效果以下瀏覽器

2.將圖片轉成二進制利用formdata上傳app

         let src = canvas.toDataURL("image/png")//這裏轉成的是base64的地址,直接用到img標籤的src是能夠顯示圖片的 var fd = new FormData();
        
         function dataURItoBlob(dataURI) {//圖片轉成Buffer var byteString = atob(dataURI.split(',')[1]);
             var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
             var ab = new ArrayBuffer(byteString.length);
             var ia = new Uint8Array(ab);
             for (var i = 0; i < byteString.length; i++) {
                 ia[i] = byteString.charCodeAt(i);
             }
             return new Blob([ab], {type: mimeString});
         }
         var blob = dataURItoBlob(src);
 
         fd.append('source_from','webpage_upload')//在formdata加入須要的參數
         fd.append('file',blob)
     /*如下是ng4的封裝上傳代碼*/
var service = ()=>{ return this.repositoryService.uplodimage(fd) } var callback = (re)=>{ if(re['success']){ console.log(re) this.form.image_cover_contents = re.data.file_info.file_path; } } this.core.doServiceAndCallback('上傳圖片',service,callback)
相關文章
相關標籤/搜索