html5預覽圖片

1.Blob 本例子主要是使用HTML5 的File API,創建一個可存取到該file的url,一個空的img標籤,ID爲img0,把選擇的文件顯示在img標籤中,實現圖片預覽功能。請選擇支持HTML API的瀏覽器,好比谷歌Chrome和火狐等。  (原文連接: http://www.codefans.net/jscss/code/4688.shtml)css

 

<!DOCTYPE html>
<html>
<head>
<title>HTML5上傳圖片預覽</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="http://www.codefans.net/ajaxjs/jquery-1.6.2.min.js"></script>
</head>
<body>
<h3>請選擇圖片文件:JPG/GIF</h3>
<form name="form0" id="form0" >
<input type="file" name="file0" id="file0" multiple="multiple" /><br><img src="" id="img0" >
</form>
<script>    
$("#file0").change(function(){
    var objUrl = getObjectURL(this.files[0]) ;
    console.log("objUrl = "+objUrl) ;
    if (objUrl) {
        $("#img0").attr("src", objUrl) ;
    }
}) ;
//創建一個可存取到該file的url
function getObjectURL(file) {
    var url = null ; 
    if (window.createObjectURL!=undefined) { // basic
        url = window.createObjectURL(file) ;
    } else if (window.URL!=undefined) { // mozilla(firefox)
        url = window.URL.createObjectURL(file) ;
    } else if (window.webkitURL!=undefined) { // webkit or chrome
        url = window.webkitURL.createObjectURL(file) ;
    }
    return url ;
}
</script>
</body>
</html>

2.  FileReader:讀取本地圖片生成二進制顯示(原文連接:http://www.helloweba.com/view-blog-224.html)html

FileReader接口主要是將文件讀入內存,並提供相應的方法,來讀取文件中的數據,固然就能顯示本地圖片不需上傳了。目前高級瀏覽器實現了FileReader接口jquery

     1.第一步建立html,咱們在頁面中放置一個文件選擇的input#file_input和一個顯示結果的div#result。web

<p> 
   <label>請選擇一個圖像文件:</label> 
   <input type="file" id="file_input" /> 
</p>  
<div id="result"></div> 

  2.經過getElementById獲取節點,判斷瀏覽器的兼容性,對於不支持FileReader接口的瀏覽器將給出一個提示並禁用input,不然監聽input的change事件。ajax

var result = document.getElementById("result"); 
var input = document.getElementById("file_input"); 
 
if(typeof FileReader==='undefined'){ 
    result.innerHTML = "抱歉,你的瀏覽器不支持 FileReader"; 
    input.setAttribute('disabled','disabled'); 
}else{ 
    input.addEventListener('change',readFile,false); 
} 

 

  3.當file_input的change事件觸發時,調用函數readFile()。在readFile中,咱們首先獲取file對象,而後經過file的 type屬性來檢測文件類型,咱們固然只容許選擇圖像類型的文件,而後咱們new一個FileReader實例,並調用readAsDataURL方法來 讀取選中的圖像文件,最後在onload事件中,獲取到成功讀取的文件內容,並以插入一個img節點的方式顯示選中的圖片。chrome

function readFile(){ 
    var file = this.files[0]; 
    if(!/image\/\w+/.test(file.type)){ 
        alert("文件必須爲圖片!"); 
        return false; 
    } 
    var reader = new FileReader(); 
    reader.readAsDataURL(file); 
    reader.onload = function(e){ 
        result.innerHTML = '<img src="'+this.result+'" alt=""/>' 
    } 
} 

  

FileReader的方法和事件

參數/事件 描述
方法
abort 中斷讀取
readAsText(file, [encoding]) 將文件讀取爲文本
該方法有兩個參數,其中第二個參數是文本的編碼方式,默認值爲 UTF-8。這個方法很是容易理解,將文件以文本方式讀取,讀取的結果便是這個文本文件中的內容。
readAsBinaryString(file) 將文件讀取二進制碼
一般咱們將它傳送到後端,後端能夠經過這段字符串存儲文件
readAsDataURL(file) 將文件讀取爲DataURL
將文件讀取爲一串Data URL字符串,將小文件以一種特殊格式的URL地址直接讀入頁面。小文件指圖像與html等格式的文件。
事件
onabort 數據讀取中斷時觸發
onerror 數據讀取出錯時觸發
onloadstart 數據讀取開始時觸發
onload 數據讀取成功完成時觸發
onloadend 數據讀取完成時觸發,不管成功失敗
相關文章
相關標籤/搜索