FileReader:读取本地图片文件并显示
来源:互联网 发布:电脑垃圾清理软件排名 编辑:程序博客网 时间:2024/05/16 19:24
http://www.cnblogs.com/wang7/archive/2012/12/20/2826731.html
http://www.codesky.net/article/201308/181895.html
要想在页面上显示本地图片,以前我们通常的做法是将选择的图片文件上传至后端服务器,后端对其进行存储,再将图片的URL返回到前端,前端通过这个URL来显示图片。而HTML5的FileReader接口支持本地预览,FileReader接口主要是将文件读入内存,并提供相应的方法,来读取文件中的数据,当然就能显示本地图片不需上传了。目前高级浏览器实现了FileReader接口,所以像IE6这些老东西直接滚粗。
在此之前,我们有文章:HTML5应用之文件拖拽上传,看完这篇文章后,你可以尝试制作一个拖拽和显示图片、编辑图片、最后上传的功能。
HTML
第一步创建html,我们在页面中放置一个文件选择的input#file_input和一个显示结果的div#result。
<p> <label>请选择一个图像文件:</label> <input type="file" id="file_input" /></p> <div id="result"></div>
Javascript
通过getElementById获取节点,判断浏览器的兼容性,对于不支持FileReader接口的浏览器将给出一个提示并禁用input,否则监听input的change事件。
var result = document.getElementById("result");var input = document.getElementById("file_input");if(typeof FileReader==='undefined'){result.innerHTML = "抱歉,你的浏览器不支持 FileReader";input.setAttribute('disabled','disabled');}else{input.addEventListener('change',readFile,false);}
然后,当file_input的change事件触发时,调用函数readFile()。在readFile中,我们首先获取file对象,然后通过file的type属性来检测文件类型,我们当然只允许选择图像类型的文件,然后我们new一个FileReader实例,并调用readAsDataURL方法来读取选中的图像文件,最后在onload事件中,获取到成功读取的文件内容,并以插入一个img节点的方式显示选中的图片。
function readFile(){var file = this.files[0];if(!/image/w+/.test(file.type)){alert("文件必须为图片!");return false;}var reader = new FileReader();reader.readAsDataURL(file);reader.onload = function(e){result.innerHTML = '<img src="'+this.result+'" alt=""/>'}}
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
var input = document.getElementById("fileField");var result = document.getElementById("result");if(typeof FileReader==='undefined'){ alert("抱歉,你的浏览器不支持 FileReader"); input.setAttribute('disabled','disabled');}else{ input.addEventListener('change',readFile,false);};function readFile(){ var file = this.files[0];// if(!/image/w+/.test(file.type)){ if(!/image\/\w+/.test(file.type)){ alert("文件必须为图片!"); return false; }// var file = document.getElementById("fileField"); var reader = new FileReader(); reader.readAsDataURL(file); reader.onload = function(e){// result.innerHTML = '<img src="'+this.result+'" alt=""/>' document.getElementById("viewImg").src = this.result; } } function filetrriger(){ $("#fileField").trigger("click");// if(typeof FileReader==='undefined'){// alert("抱歉,你的浏览器不支持 FileReader");// o.setAttribute('disabled','disabled');// }else{// o.addEventListener('change',readFile,false);// } }-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
怎么样,可以看来我们并没有和后台交互就能将本地图片显示在页面中,最后我们来了解下FileReader的方法和事件。
FileReader的方法和事件
参数/事件描述方法abort中断读取readAsText(file, [encoding])将文件读取为文本该方法有两个参数,其中第二个参数是文本的编码方式,默认值为 UTF-8。这个方法非常容易理解,将文件以文本方式读取,读取的结果即是这个文本文件中的内容。readAsBinaryString(file)将文件读取二进制码
通常我们将它传送到后端,后端可以通过这段字符串存储文件readAsDataURL(file)将文件读取为DataURL
将文件读取为一串Data URL字符串,将小文件以一种特殊格式的URL地址直接读入页面。小文件指图像与html等格式的文件。事件onabort数据读取中断时触发onerror数据读取出错时触发onloadstart数据读取开始时触发onload数据读取成功完成时触发onloadend数据读取完成时触发,无论成功失败
- FileReader:读取本地图片文件并显示
- FileReader:读取本地图片文件并显示
- FileReader:读取本地图片文件并显示
- FileReader:读取本地图片文件并显示
- FileReader:读取本地图片文件并显示
- FileReader:读取图片文件并显示
- Flex读取本地图片文件为ByteArray并显示
- js读取本地图片并显示
- springmvc读取本地图片并显示
- 读取本地JSON文件并显示
- 读取本地JSON文件并显示
- 使用FileReader读取本地磁盘文件问题
- Qt读取本地图片使用halcon读取并显示
- 读取磁盘图片文件并显示
- 读取磁盘图片文件并显示
- java读取本地图片并在jsp中显示
- 读取input:file的路径并显示本地的图片
- 【javascript】File API 读取并显示本地图片 -1
- 成为专业程序员的 6 个技巧—兄弟连IT教育
- LeetCode--Binary Tree Inorder Traversal
- MySQL远程访问:错误码1130解决方案
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- cf#286-B - Mr. Kitayuta's Colorful Graph-dfs
- FileReader:读取本地图片文件并显示
- Xcode因为证书问题经常报的那些错
- IOS各种调试技巧豪华套餐(好东西)
- iOS加载图片imageNamed方法还是imageWithContentsOfFile
- 最值得程序猿学习的几个iOS 开源项目
- 12306简单设计
- linux(centos)搭建SVN服务器
- Unbuntu server15.04 Nginx1.8 + tomcat7集群+redis3 Session共享管理配置
- MapReduce二次排序中遇到的问题,及解决方法