Day-1-圖片上傳

圖片上傳顯示

input標籤type=“file” 支持文件上傳,multiple表示支持多文件同時上傳

<input type="file" multiple>

文件上傳會自動觸發input的onchange事件,

 

files的內部存儲了上傳文件的屬性

input.οnchange=function(){
        console.log(this.files);//this.files存儲了文件的屬性
    }

上傳的圖片還需顯示在dom元素中,H5提供了FileReader這個構造函數讓我們讀取本地的文件

讀取TXT文本時需注意,要UTF-8格式文件

具體步驟如下:

var reader=new FileReader()     //創建對象
reader.readAsText(文本文件)      //讀取文本文件(文本文件需保存UTF-8格式)
reader.readAsDataURL(圖片文件) //讀取圖片文件
reader.οnlοad=function(){       //讀取好之後執行,異步函數
    console.log(this.result)    //this.result是onload加載後的資源
}

上傳代碼實例代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="file" multiple>
<script>
    /*
    *   files 這個存儲了 上傳文件的集合
    *
    * */
    var input = document.querySelector('input')
    //當文件上傳時 會觸發回調函數
    input.onchange = function(){
        console.log('文件上傳了');

        var file = this.files[0]
        console.log(file);

        //生成一個有讀取文件能力的對象
        var reader = new FileReader()

        //讀取圖片
        reader.readAsDataURL(file)
        //等文件讀取對象  讀完了file的數據之後  會觸發onload事件
        reader.onload = function(){
            console.log('文件讀取完成');
            console.log(this.result)

            //創建img節點  document.createElement('img')
            var oImg = new Image();

            oImg.src = this.result ;   //異步代碼
            oImg.width = 200;

            oImg.onload = function(){
                document.body.appendChild(this)
            }
        }

    }


</script>
</body>
</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章