html5讀取本地文件,圖片預覽


這里只是寫了方法的原型,可以根據需求設置上傳的類型,大小。可能有不足的地方,希望大神指正!

案例1,實現本地圖片預覽(單張),URL.createObjectURL(file)

URL.createObjectURL()創建一個新的對象URL,該對象URL可以代表某一個指定的File對象或Blob對象.

html代碼

<input type="file" id="changeMore">
<div id="ImgCon"></div>

js代碼

 1 function changeM(){
 2         var inputJ = $("#changeMore"),
 3             input  = inputJ[0],
 4             Con    = $("#ImgCon");
 5 
 6         inputJ.change(function(e){
 7             var file     = e.target.files[0],//拿到原始對象
 8                 thisType = file.type,//獲取到表面的名稱,可判斷文件類型
 9                 thisSize = file.size,//文件的大小
10                 thisSrc  = URL.createObjectURL(file),//當前對象的地址
11                 img      = $('<img>').attr('src',thisSrc);//創建img對象
12 
13                 //文件加載成功以后,渲染到頁面
14                 img.load(function(){
15                     Con.append(img);
16                     URL.revokeObjectURL(thisSrc);//釋放內存
17                 });
18         });    
19     }//
20     changeM();

 案例2,實現本地圖片預覽(單張),FileReader()

  關於fileReader()的方法介紹

<input type="file" id="changeMore">
<div id="ImgCon"></div>

js 代碼

 1 function changeM(){
 2         var inputJ = $("#changeMore"),
 3             input  = inputJ[0],
 4             Con    = $("#ImgCon");
 5 
 6         inputJ.change(function(e){
 7             var file     = e.target.files[0],//拿到原始對象
 8                 thisType = file.type,//獲取到表面的名稱,可判斷文件類型
 9                 thisSize = file.size,//文件的大小
10                 reader   = new FileReader();
11 
12                 //readAsDataURL(file),讀取文件,將文件以數據URL的形式保存在result的屬性中
13                 reader.readAsDataURL(file);
14 
15                 //文件加載成功以后,渲染到頁面
16                 reader.onload = function(e) {
17                     var $img = $('<img>').attr("src", e.target.result);
18                     Con.append($img)
19                 }
20         });    
21 
22     }//changeM end!
23     changeM();

 

 案例3,實現本地圖片預覽(多張)

  方法和前兩種一樣,拿到的只不過是一個數組,原理都是一樣的。

 

<input type="file" id="changeMore" multiple="multiple">
<div id="ImgCon"></div>

js代碼

 1 function changeM(){
 2         var inputJ = $("#changeMore"),
 3             input  = inputJ[0],
 4             Con    = $("#ImgCon");
 5 
 6         inputJ.change(function(e){
 7             var files     = e.target.files,//拿到file數組
 8                 thisSrc   = '';//當前的地址
 9 
10             for(var i = 0; i < files.length; i++ ){
11                 thisSrc = URL.createObjectURL(files[i]);
12                 
13                 //文件加載成功后渲染
14                 $('<img>').attr('src',thisSrc).load(function(){
15                     Con.append( this );
16                     URL.revokeObjectURL(thisSrc);//釋放內存
17                 });
18                 
19             }
20         });    
21     }//
22     changeM();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM