原文:http://blog.csdn.net/varkychan/article/details/8223979
在网页中实现图片上传功能,当用户选择了图片文件后,想在页面中即时预览该图片,这个简单的需求在很久很久以前可以实现,后来因为安全性的问题被禁止直接访问本地文件了,所以又在很长很长一段时间里,想通过HTML直接预览用户选择的图片变得不可能,自从有了HTML5,这个功能又回来了,通过FileReader可以轻松的实现这个功能。
只要在<input type="file" />文件表单元素中监听 onchange 事件,然后通过FileReader读取图片文件,然后将读取的内容在<img>中显示即可。示例代码如下:
- document.getElementById('file').onchange = function(evt) {
- // 如果浏览器不支持FileReader,则不处理
- if (!window.FileReader) return;
- var files = evt.target.files;
- for (var i = 0, f; f = files[i]; i++) {
- if (!f.type.match('image.*')) {
- continue;
- }
- var reader = new FileReader();
- reader.onload = (function(theFile) {
- return function(e) {
- // img 元素
- document.getElementById('previewImage').src = e.target.result;
- };
- })(f);
- reader.readAsDataURL(f);
- }
- }