您的位置:首页 > Web前端 > HTML5

html5读取本地文件,图片预览

2015-08-20 17:58 671 查看
这里只是写了方法的原型,可以根据需求设置上传的类型,大小。可能有不足的地方,希望大神指正!

案例1,实现本地图片预览(单张),URL.createObjectURL(file)

URL.createObjectURL()创建一个新的对象URL,该对象URL可以代表某一个指定的
File
对象或
Blob
对象.

html代码

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


js代码

function changeM(){
var inputJ = $("#changeMore"),
input  = inputJ[0],
Con    = $("#ImgCon");

inputJ.change(function(e){
var file     = e.target.files[0],//拿到原始对象
thisType = file.type,//获取到表面的名称,可判断文件类型
thisSize = file.size,//文件的大小
thisSrc  = URL.createObjectURL(file),//当前对象的地址
img      = $('<img>').attr('src',thisSrc);//创建img对象

//文件加载成功以后,渲染到页面
img.load(function(){
Con.append(img);
URL.revokeObjectURL(thisSrc);//释放内存
});
});
}//
changeM();


[b]案例2,实现本地图片预览(单张),FileReader()[/b]

关于fileReader()的方法介绍

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


js 代码

function changeM(){
var inputJ = $("#changeMore"),
input  = inputJ[0],
Con    = $("#ImgCon");

inputJ.change(function(e){
var file     = e.target.files[0],//拿到原始对象
thisType = file.type,//获取到表面的名称,可判断文件类型
thisSize = file.size,//文件的大小
reader   = new FileReader();

//readAsDataURL(file),读取文件,将文件以数据URL的形式保存在result的属性中
reader.readAsDataURL(file);

//文件加载成功以后,渲染到页面
reader.onload = function(e) {
var $img = $('<img>').attr("src", e.target.result);
Con.append($img)
}
});

}//changeM end!
changeM();


[b]案例3,[b]实现本地图片预览(多张)[/b][/b]

方法和前两种一样,拿到的只不过是一个数组,原理都是一样的。

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


js代码

function changeM(){
var inputJ = $("#changeMore"),
input  = inputJ[0],
Con    = $("#ImgCon");

inputJ.change(function(e){
var files     = e.target.files,//拿到file数组
thisSrc   = '';//当前的地址

for(var i = 0; i < files.length; i++ ){
thisSrc = URL.createObjectURL(files[i]);

//文件加载成功后渲染
$('<img>').attr('src',thisSrc).load(function(){
Con.append( this );
URL.revokeObjectURL(thisSrc);//释放内存
});

}
});
}//
changeM();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: