base64 上傳到七牛雲 返回url

朝愛學習發表於2019-02-19

解決問題:獲取到圖片的base64碼,通過傳到七牛雲空間,獲取到url網路連結,方便其他地方使用圖片。

程式碼如下:
 function putb64(picBase) {
            /*picUrl用來儲存返回來的url*/
            var token = localStorage.token;
            var picUrl;
            /*把頭部的data:image/png;base64,去掉。(注意:base64後面的逗號也去掉)*/
            picBase = picBase.substring(22);
            /*通過base64編碼字元流計算檔案流大小函式*/
            function fileSize(str) {
                var fileSize;
                if (str.indexOf('=') > 0) {
                    var indexOf = str.indexOf('=');
                    str = str.substring(0, indexOf);//把末尾的’=‘號去掉
                }
                fileSize = parseInt(str.length - (str.length / 8) * 2);
                return fileSize;
            }
            /*把字串轉換成json*/

            var url = "http://up-z2.qiniup.com/putb64/" + fileSize(picBase);
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4) {
                    var keyText = JSON.parse(xhr.responseText);
                    /*返回的key是字串,需要裝換成json*/
                    picUrl = "http://information.chengdudatangoa.com/" + keyText.key;
                    "http://information.chengdudatangoa.com/"是我的連結地址,換成你的地址
                    localStorage.cutOutUrl = picUrl;
              
                }
            }
            xhr.open("POST", url, true);
            xhr.setRequestHeader("Content-Type", "application/octet-stream");

            xhr.setRequestHeader("Authorization", "UpToken " + token);
            xhr.send(picBase);
        }複製程式碼

相關文章