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();

 

posted @ 2015-08-20 17:58  笨·大叔  阅读(16361)  评论(0编辑  收藏  举报