【MUI】選擇圖片并上傳至服務(wù)器

最后更新17.01.20

一、首先這是HTML的代碼 將要顯示一張圖片

<img id="my_img_id" class="my_img_class" />

二、然后這是JavaScript代碼

var img_my = document.getElementById('my_img_id');

//點擊添加圖片 
img_my.addEventListener('tap', function() {
    
    //打開相冊(這里之前很多小伙伴問我,為什么打不開,因為我用的是H5+的方式,不適用于純web頁面)
    plus.gallery.pick(
        function(path) {
            img_my.src = path; //設(shè)置img的路徑

            //把圖片base64編碼  注意:這里必須在onload事件里執(zhí)行!這給我坑的不輕
            img_my.onload = function() {
                var data = getBase64Image(img_my);    //base64編碼
                var newImgbase = data.split(",")[1];  //通過逗號分割到新的編碼
                imgArray.push(newImgbase);            //放到imgArray數(shù)組里面
                img_my.off('load');                   //關(guān)閉加載
                }
            },
            function(e) {
                mui.toast('取消選擇');
                });
            });

//base64編碼  
function getBase64Image(img) {
    var canvas = document.createElement("canvas");   //創(chuàng)建canvas DOM元素,并設(shè)置其寬高和圖片一樣
    canvas.width = img.width;
    canvas.height = img.height;
    var ctx = canvas.getContext("2d");
    ctx.drawImage(img, 0, 0, img.width, img.height); //使用畫布畫圖
    var ext = img.src.substring(img.src.lastIndexOf(".") + 1).toLowerCase();  //動態(tài)截取圖片的格式
    var dataURL = canvas.toDataURL("image/" + ext);  //返回的是一串Base64編碼的URL并指定格式
    return dataURL;
}
            

三、上傳圖片操作

function uploadimg() {
    
    //這里就可以把添加過圖片的imgArray通過JSON解析成字符串,然后上傳給服務(wù)器
    var imgJson = JSON.stringify(imgArray);
    
    mui.ajax("上傳圖片的地址", {
        data: {
            pic: imgJson,       
        },
        type: 'post',
        timeout: 10000,
        dataType: 'json',
        success: function(data) {
            if(data.error == 0) {   
                mui.toast('上傳成功');  
            } else {
                mui.toast('上傳失敗:'+data.data);
            }
        },
        error: function(xhr, type, errorThrown) {
            mui.toast('錯誤');
        }
    });
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容