本地解析SQL文件尼变,并傳給后臺

FileReader API

  • 使用FileReader對象,web應用程序可以異步的讀取存儲在用戶計算機上的文件(或者原始數(shù)據緩沖)內容卸勺,可以使用File對象或者Blob對象來指定所要處理的文件或數(shù)據砂沛。
    方法
方法定義 描述
abort():void 終止文件讀取操作
readAsArrayBuffer(file):void 異步按字節(jié)讀取文件內容,結果用ArrayBuffer對象表示
readAsBinaryString(file):void 異步按字節(jié)讀取文件內容曙求,結果為文件的二進制串
readAsDataURL(file):void 異步讀取文件內容碍庵,結果用data:url的字符串形式表示
readAsText(file,encoding):void 異步按字符讀取文件內容,結果用字符串形式表示

事件

事件名稱 描述
onabort 當讀取操作被中止時調用
onerror 當讀取操作發(fā)生錯誤時調用
onload 當讀取操作成功完成時調用
onloadend 當讀取操作完成時調用,不管是成功還是失敗
onloadstart 當讀取操作將要開始之前調用
onprogress 在讀取數(shù)據過程中周期性調用

使用方法

FileReader通過異步的方式讀取文件內容悟狱,結果均是通過事件回調獲取

var input  = document.getElementById("file"); //input file
input.onchange = function(){
    var file = this.files[0];
    if(!!file){
        //讀取本地文件静浴,以gbk編碼方式輸出
        var reader = new FileReader();
        reader.readAsText(file,"gbk");
        reader.onload = function(){
            //讀取完畢后輸出結果
            console.log(this.result);
        }
    }
}
//顯示圖片縮略圖
function handleFiles(files) {
  for (var i = 0; i < files.length; i++) {
    var file = files[i];
    var imageType = /^image\//;
    
    if (!imageType.test(file.type)) {
      continue;
    }
    
    var img = document.createElement("img");
    img.classList.add("obj");
    img.file = file;
    preview.appendChild(img); // Assuming that "preview" is the div output where the content will be displayed.
    
    var reader = new FileReader();
    reader.onload = (function(aImg) { return function(e) { aImg.src = e.target.result; }; })(img);
    reader.readAsDataURL(file);
  }
}

需求

我們需要在本地讀取sql文件,并將其解析挤渐,發(fā)送給后臺马绝,后臺返回此sql的表結構
成品如圖所示:


未選擇.jpg
已選擇.jpg
  • 使用FileReader來讀取文件,并使用文本域textarea來展示文件
 <textarea  id="content"  cols="30" rows="24" class="textarea" name="content" ></textarea>
         /**  
         * 上傳函數(shù)
         * @param fileInput DOM對象
         * @param callback 回調函數(shù)
         */
        var getFileContent = function (fileInput, callback) {
            if (fileInput.files && fileInput.files.length > 0 && fileInput.files[0].size > 0) {
                //下面這一句相當于JQuery的:var file =$("#upload").prop('files')[0];
                var file = fileInput.files[0];
                if (window.FileReader) {
                    var reader = new FileReader();
                    reader.onloadend = function (evt) {
                        if (evt.target.readyState == FileReader.DONE) {
                            callback(evt.target.result);
                            // console.log(evt.target.result)
                            //  sql = evt.target.result
                            //  console.log(this.sql)
                             localStorage.setItem('sql',evt.target.result)
                             console.log(localStorage.sql)
                        }
                    };
                    // 包含中文內容用gbk編碼
                    // reader.readAsText(file, 'gbk');
                    reader.readAsText(file, 'utf-8');
                }
            }
        };
       
        /**
         * upload內容變化時載入內容
         */
        document.getElementById('upload').onchange = function () {
            var content = document.getElementById('content');
            getFileContent(this, function (str) {
                content.value = str;
            });
        };
      //  console.log(this.sql)
      }
  • 由于目前sql文件都不算太大挣菲,我是先將其存入localStorage中富稻,比較偷懶,因為這個項目還要重構白胀,所以就沒改了??????
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末椭赋,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子或杠,更是在濱河造成了極大的恐慌哪怔,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件向抢,死亡現(xiàn)場離奇詭異认境,居然都是意外死亡,警方通過查閱死者的電腦和手機挟鸠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門叉信,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人艘希,你說我怎么就攤上這事硼身」杓保” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵佳遂,是天一觀的道長营袜。 經常有香客問我,道長丑罪,這世上最難降的妖魔是什么荚板? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮吩屹,結果婚禮上啸驯,老公的妹妹穿的比我還像新娘。我一直安慰自己祟峦,他們只是感情好罚斗,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宅楞,像睡著了一般针姿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上厌衙,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天距淫,我揣著相機與錄音,去河邊找鬼婶希。 笑死榕暇,一個胖子當著我的面吹牛,可吹牛的內容都是我干的喻杈。 我是一名探鬼主播彤枢,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼筒饰!你這毒婦竟也來了缴啡?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤瓷们,失蹤者是張志新(化名)和其女友劉穎业栅,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谬晕,經...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡碘裕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了攒钳。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帮孔。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖夕玩,靈堂內的尸體忽然破棺而出你弦,到底是詐尸還是另有隱情,我是刑警寧澤燎孟,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布禽作,位于F島的核電站,受9級特大地震影響揩页,放射性物質發(fā)生泄漏旷偿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一爆侣、第九天 我趴在偏房一處隱蔽的房頂上張望萍程。 院中可真熱鬧,春花似錦兔仰、人聲如沸茫负。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忍法。三九已至,卻和暖如春榕吼,著一層夾襖步出監(jiān)牢的瞬間饿序,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工羹蚣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留原探,地道東北人。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓顽素,卻偏偏與公主長得像咽弦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子胁出,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內容