這里只是寫了方法的原型,可以根據需求設置上傳的類型,大小。可能有不足的地方,希望大神指正!
案例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();