1. 程式人生 > >js讀取檔案

js讀取檔案

1.js讀取檔案

/**
     * 上傳圖片
     * @param file 傳入獲取的檔案
     * @author wangzhen 2018-09-07
    */
    function loadImg(file,callback){
        //建立讀取檔案的物件
        var reader = new FileReader();

        //建立檔案讀取相關的變數
        var imgFile;

        //為檔案讀取成功設定事件
        reader.onload=function(e) {
            // console.log('檔案讀取完成');
            imgFile = e.target.result;
            // console.log(imgFile);
            // $("#imgLicense").attr('src', imgFile);
            // callback(imgFile);
            callback(file);
        };

        //正式讀取檔案
        reader.readAsDataURL(file);
    }

2.將以base64的圖片url資料轉換為Blob

// -------- 將以base64的圖片url資料轉換為Blob --------
    function convertBase64UrlToBlob(urlData, filetype){
        //去掉url的頭,並轉換為byte
        var bytes = window.atob(urlData.split(',')[1]);
        
        //處理異常,將ascii碼小於0的轉換為大於0
        var ab = new ArrayBuffer(bytes.length);
        var ia = new Uint8Array(ab);
        var i;
        for (i = 0; i < bytes.length; i++) {
            ia[i] = bytes.charCodeAt(i);
        }

        return new Blob([ab], {type : filetype});
    }

3.input獲取

3.1 html部分

<div class="file-box">
                        <input type="file" class="file-btn" @change="uploadImg($event)" readonly="readonly"/>
                        上傳圖片
                    </div>  

3.2 css部分

.file-box{
            display: inline-block;
            position: relative;
            padding: 3px 5px;
            overflow: hidden;
            color:#fff;
            background-color: red;
            border-radius: 5px;
        }
        .file-btn{
            position: absolute;
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
            outline: none;
            background-color: transparent;
            filter:alpha(opacity=0);
            -moz-opacity:0;
            -khtml-opacity: 0;
            opacity: 0;
        }

3.3 js部分

function uploadImg(event){
        // console.log(event);
        var imgFile = event.target.files[0];
       //傳遞引數fd
       var fd = new FormData();
        fd.append("file",imgFile);
    }