html5 文件api

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>html5文件API</title>
<script type="text/javascript">
  
   function getName(){
	   var file = document.getElementById("file");
	   //document.getElementById("file").files 
	   // 返回 FileList對象 
	   var files = file.files;
	  for(i=0;i<files.length;i++){
		  //獲取文件的名稱 
		  alert(files[i].name);
	  }
   }
   
   function getSize(){
	   var file = document.getElementById("file1");
	   
	   var size =file.files[0].size;//顯示文件的尺寸 
	   /*
	   excel:application/vnd.ms-excel
	   word:application/msword(.doc), 
	       application/vnd.openxmlformats-officedocument.wordprocessingml.document(.docx)
	       實際應用中要根據具體的type類型 限制 上傳的類型 ,用正則表達式驗證 
	   */
	   var type =file.files[0].type;//文件的類型  image/png,image/jpeg,text/plain,text/html
	  
	   //對文件列表FileList纔有意義,對file對象沒有做用,也就是說上傳單個文件也要有數組形式訪問其屬性 ..
	   
	   var name =file.files[0].name;
	   document.getElementById("mark").innerHTML=type;
	   alert(size+","+type+","+name);
   }
</script>
</head>
<body>

   <form action="">
   <!-- html5爲文件域添加multiple="multiple"支持多文件上傳,用逗號分隔 -->
   附件:<input type="file" id="file" multiple="multiple" onblur="getName();" >
   <!-- 添加accept屬性 限制要選擇的文件的類型,但只是在打開文件選擇那一刻篩選出符合條件的文件
   ,例如:下面要求文件類型爲圖片,打開文件選擇框時只會列出全部的圖片文件;
   具體狀況各大瀏覽器支持不同: Firefox 列出全部文件,chrome自動篩選出符合條件的文件,IE9和FF同樣,
   能夠說不支持吧
    -->
   頭像 : <input type="file" id="file1" accept="image/*">
      文件的類型:<mark id="mark"></mark>
   <input type="button" value="獲取文件大小" onclick="getSize();">
   </form>
   <!-- FileReader接口 示例  -->
   
   
   
   <input type="file" id="rd">
   <span id="msg"></span>
  <input type="button" value="以文本形式讀取" onclick="readAsText();">
  <input type="button" value="以二進制形式讀取" onclick="readAsBinaryString();">
  <input type="button" value="以dataURL形式讀取" onclick="readAsDataURL();">
  
  <script type="text/javascript">
     
   var file = document.getElementById("rd");
   
   if (typeof FileReader =="undefined"){
	   msg.value="您的瀏覽器不支持FileReader";
	   //禁用文件域 
	   file.setAttribute("disabled","disabled");
   }
   else{
	  console.info("恭喜您能夠使用...");
   }
   //將文件讀取爲文本
     function readAsText(){
    	
	   var file = document.getElementById("rd").files[0];
	   var reader = new FileReader();
	   reader.readAsText(file);
	   //onload 加載成功 後觸發 
	   reader.onload=function(e){
		   var msg = document.getElementById("msg");
		   //把讀取到的文本信息顯示 
		   //msg.value=this.result;
		   console.info(reader.result);
	   }
	   
     }
     //將文件讀取爲二進制
 function readAsBinaryString(){
    	 
	 var file = document.getElementById("rd").files[0];
	   var reader = new FileReader();
	   //二進制形式讀取 
	   reader.readAsBinaryString(file);
	   //onload 加載成功 後觸發 
	   reader.onload=function(e){
		   var msg = document.getElementById("msg");
		   //把讀取到的文本信息顯示 
		   //msg.value=this.result;
		   
		   console.info(reader.result);
		   console.info("load觸發,加載成功...");
	   }
	   //加載結束觸發,無論成功失敗 
	   reader.onloadend=function(){
		   console.info("loadend觸發,加載結束...");
	   }
	   //開始加載觸發 
	   reader.onloadstart=function(){
		   console.info("loadstart觸發,開始加載...");
	   }
	   //記載出錯觸發 
	   reader.onerror=function(){
		   console.info("error觸發,加載過程當中出現錯誤...");
	   }
	   //中斷記載觸發 
	   reader.onabort=function(){
		   console.info("abort觸發,加載中斷觸發...");
	   }
	   //記載進程 ,可用progress標籤顯示加載進度 
	   reader.onprogress=function(){
		   console.info("progress觸發,加載中...");
	   }
    	 
     }
  //將文件讀取爲DataURL
 function readAsDataURL(){
	 var file = document.getElementById("rd").files[0];
	   var reader = new FileReader();
	   //圖片驗證 
	   if (!/image\/\w+/.test(file.type)){
		   alert("只能輸出圖片");
		   return ;
	   }
	   //二進制形式讀取 
	   reader.readAsDataURL(file);
	   //onload 加載成功 後觸發 
	   reader.onload=function(e){
		   var msg = document.getElementById("msg");
		   //把讀取到的文本信息顯示 
		   //msg.value=this.result;
		   //console.info(reader.result);
		   //把圖片顯示到頁面中....
		   msg.innerHTML='<img src='+this.result+' />';
	   } 
 }
   </script>
</body>
</html>


相關文章
相關標籤/搜索