1. 程式人生 > >H5 讀取檔案流

H5 讀取檔案流

 程式碼:

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<head>
<meta charset="utf-8">
  <title>檔案讀取</title>
  <style>
    div {
     margin-top: 30px;
     border: solid 1px black;
     padding: 5px;
    }
  </style>
  <script>
    function processFiles(files) {
      var file = files[0];

      var message = document.getElementById("message");
      message.innerHTML = "檔名:" + file.name + "<br>";
      message.innerHTML += "檔案大小:" + file.size + "位元組<br>";
      message.innerHTML += "檔案型別:" + file.type + "<br>";
      
  
      var type = getFileName(file.name);
      console.log(type);
      var reader = new FileReader();

      /*
         第一種:讀取文字檔案,顯示
      */
      if(type == "txt" || type == "md" || type == "pdf" || type == "ppt" || type == "html" || type == "doc"
       || type == "docx" || type == "wps"){
      reader.onload = function (e) {
        // 這個事件發生,意為著資料準備好了
        // 把它複製到頁面的<div>元素中
        var output = document.getElementById("fileOutput");  
        output.textContent = e.target.result;
      };
      reader.readAsText(file,"utf-8");   //處理文字內容
    }
      /*
          第二種:讀取影象檔案,顯示
      */
      if (type == "png" || type == "jpg" || type == "bmp" || type == "gif" || type == "jpeg" || type == "tiff" ) {
       reader.onload = function(e) {
           var output = document.getElementById("fileOutput");  
           output.innerHTML = '<img style="padding: 0 10px;" width="400px" src="'+ this.result +'" alt="'+ file.name +'" />';
        };
        //讀取檔案內容
        reader.readAsDataURL(file);
    }
}

   function getFileName(fileName){//通過第一種方式獲取檔名
      var pos=fileName.lastIndexOf(".");//查詢最後一個\的位置
      return fileName.substring(pos+1); //擷取最後一個\位置到字元長度,也就是擷取檔名 
   }
  </script>
</head>
<body>
  <input id="fileInput" type="file" size="50" onchange="processFiles(this.files)">
  <div id="message"></div>
  <div id="fileOutput"></div>
</body>
</html>

截圖: