HTML使用FileReader对象的readAsDataURL()方法实现图片的上传预览效果
2014-07-30 14:26
1306 查看
FileReader接口提供了一个异步的API,通过这个API可以从浏览器中异步访问文件系统中的数据。因此,FileReader接口可以读取文件中的数据,并将读取的数据放入到内存中去。
通过FileReader接口中的readAsDataURL()方法可以获取API异步读取的文件数据,另存为数据URL;将该URL绑定到img标签的src属性上,就可以实现图片的上传预览效果了。
注意:当访问不同的文件时,必须重新调用FileReader的构造函数,也就是重新new一个FileReader对象,因为每调用一次,FileReader对象都将返回一个新的FileReader实例,只有这样,才能实现访问不同文件的数据
html代码:
<fieldset>
<legend>使用readAsDataUrl()方法预览图片</legend>
<input type="file" name="fileUpload" id="fileUpload" onchange="filePrevImg(this.files);" multiple="true" />
<ul id="prevUpload"></ul>
</fieldset>
js代码:
function $$(id){
retturn document.getElementById(id);
}
function filePrevImg(files){
//检测浏览器是否支持FileReader对象
if(typeof FileReader == "undefined"){
alert("您的浏览器不支持FileReader对象!");
}
var strHtml = "";
for(var intI=0;intI<files.length;intI++){
var tmpFile = files[intI];
var reader = new FileReader();//每循环一次都要重新new一个FileReader实例
reader.readAsDataURL(tmpFile);
reader.onload=function(e){
alert(e.target.result);
strHtml += "<span>";
strHtml += "<img src='"+e.target.result+"' alt=''/>";
strHtml += "</span>";
$$("prevUpload").innerHTML = "<li>"+strHtml+"</li>";
};
}
}
通过FileReader接口中的readAsDataURL()方法可以获取API异步读取的文件数据,另存为数据URL;将该URL绑定到img标签的src属性上,就可以实现图片的上传预览效果了。
注意:当访问不同的文件时,必须重新调用FileReader的构造函数,也就是重新new一个FileReader对象,因为每调用一次,FileReader对象都将返回一个新的FileReader实例,只有这样,才能实现访问不同文件的数据
html代码:
<fieldset>
<legend>使用readAsDataUrl()方法预览图片</legend>
<input type="file" name="fileUpload" id="fileUpload" onchange="filePrevImg(this.files);" multiple="true" />
<ul id="prevUpload"></ul>
</fieldset>
js代码:
function $$(id){
retturn document.getElementById(id);
}
function filePrevImg(files){
//检测浏览器是否支持FileReader对象
if(typeof FileReader == "undefined"){
alert("您的浏览器不支持FileReader对象!");
}
var strHtml = "";
for(var intI=0;intI<files.length;intI++){
var tmpFile = files[intI];
var reader = new FileReader();//每循环一次都要重新new一个FileReader实例
reader.readAsDataURL(tmpFile);
reader.onload=function(e){
alert(e.target.result);
strHtml += "<span>";
strHtml += "<img src='"+e.target.result+"' alt=''/>";
strHtml += "</span>";
$$("prevUpload").innerHTML = "<li>"+strHtml+"</li>";
};
}
}
相关文章推荐
- readAsDataUrl()方法实现预览图片效果
- 使用FileReader对象的readAsDataURL方法来读取图像文件
- 使用FileReader对象的readAsDataURL方法来读取图像文件
- html5 使用FileReader对象的readAsDataURL方法来读取图像文件
- 使用FileReader对象的readAsDataURL方法来读取图像文件
- 利用html5的FileReader对象实现图片预览,利用FormData对象结合struts2实现无刷新文件上传(多参数)
- JavaScript使用FileReader对象实现图片上传预览
- 使用DataTransfer对象实现图片拖拽上传并预览效果
- HTML自定义按钮上传图片并实现预览(同时解决getAsDataURL()弃用问题)
- 使用readAsDataURL方法预览图片
- JavaScript使用FileReader实现图片上传预览效果
- 原生js FileReader对象实现图片上传本地预览效果
- 原生javascript FileReader对象实现图片上传本地预览效果
- JavaScript使用readAsDataUrl方法预览图片
- 在使用FileReader.readAsDataURL()时,处理不能不能连续选择同一个文件的问题
- 利用FileReader和FormData实现图片预览和上传(base64转二进制文件)
- JavaScript 中的FileReader对象(实现上传图片预览)
- java使用FileReader上传图片,可支持预览,支持多张上传
- html 使用js+css+html实现图片划过预览效果