如何在HTML5 图片预览

HTML5的 File API允许浏览器访问本地文件系统,借助它我们可以实现以前无法实现的本地图片预览功能。

先介绍下该API实现了那些接口:

1.Blob接口,表示原始的二进制数据,通过它可以访问到文件的大小和字节数据

2.File接口,保存着文件的只读属性信息,如文件名,文件类型,文件数据访问的地址。

3.FileList,一个File文件组成的数组,表示用户通过<input type="file" multiple/>选择的文件(multiple表示支持文件多选)

4.FileReader接口,它提供了读取一个文件数据的若干方法和事件

5.FileError、FileException,错误模型

本代码由www.niyuewo.com同城交友网提供

详细接口参考 http://www.w3.org/TR/2009/WD-FileAPI-20091117/

我们知道通过data URI scheme,我们可以直接将图片数据传给img进行显示,而FileReader的readAsDataURL方法正好可以返回这种数据。

下面看代码:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>html5 example: IMG Preview</title>
</head>
<body>
<div><input id="viewFiles" type="file"/></div>
<img id="viewImg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA
7ljmRAAAAGElEQVQIW2P4DwcMDAxAfBvMAhEQMYgcACEHG8ELxtbPAAAAAElFTkSuQmCC" style="max-width:500px"/>
<script type="text/javascript">
(function () {
    var viewFiles = document.getElementById("viewFiles");
    var viewImg = document.getElementById("viewImg");
    function viewFile (file) {
        //通过file.size可以取得图片大小
        var reader = new FileReader();
        reader.onload = function( evt ){
            viewImg.src = evt.target.result;
        }
        reader.readAsDataURL(file);
    }
    viewFiles.addEventListener("change", function () {
        //通过 this.files 取到 FileList ,这里只有一个
        viewFile(this.files[0]);
    }, false);
})();
</script>
</body>
</html>
时间: 2024-10-10 02:17:18

如何在HTML5 图片预览的相关文章

html5 图片预览(抄)

<!DOCTYPE html> <html> <head> <title>HTML5上传图片预览</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="http://www.codefans.net/ajaxjs/jquery-1.6.2.min.js&qu

HTML5图片预览 放大

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>图片预览</title> <style> * { margin: 0; padding: 0; } .picture { margin: 20px; position: relative; } #show { position: absolute; top: 0; left: 0; w

HTML5图片预览

作者:Snandy 两种方式实现 URL FileReader 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 <!DOCTYPE HTML> <html>     <head>     <meta charset="utf

html5 图片上传,支持图片预览、压缩、及进度显示,兼容IE6+及标准浏览器

原文:html5 图片上传,支持图片预览.压缩.及进度显示,兼容IE6+及标准浏览器 以前写过上传组件,见 打造 html5 文件上传组件,实现进度显示及拖拽上传,兼容IE6+及其它标准浏览器,对付一般的上传没有问题,不过如果是上传图片,且需要预览的话,就力有不逮了,趁着闲暇时间,给上传组件添加了单独的图片上传UI,支持图片预览和缩放(通过调整图片的大小以实现图片压缩). 上传组件特点 轻量级,不依赖任何JS库,核心代码(Q.Uploader.js)仅约700行,min版本加起来不到12KB 纯

HTML5实现图片预览功能

两种方式实现 URL FileReader Index.jsp文件 <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

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 inpu

纯前端的图片预览

尊重原创,转载请注明来自:http://www.cnblogs.com/fsjohnhuang/p/3925827.html ^_^肥仔John 一.前言 图片上传是一个普通不过的功能,而图片预览就是就是上传功能中必不可少的子功能了.在这之前,我曾经通过订阅input[type=file]元素的onchange事件,一旦更改路径则将图片上传至服务器,接着就获取图片路径并赋值到img元素上.先不管文件异步提交的解决方案,就是服务端清理那些临时的预览图片已经增加不少工作量了. 偶然从MDN上找到纯前

兼容ie[6-9]、火狐、Chrome、opera、maxthon3、360浏览器的js本地图片预览

html代码: <div id="divPreview"> <img id="imgHeadPhoto" src="Images/Headphoto/noperson.jpg" style="width: 160px; height: 170px;border: solid 1px #d2e2e2;" alt="" /> </div> <asp:FileUpload

前端图片预览,上传前预览,兼容IE7、8、9、10、11,Firefox,Chrome

在现在的Web开发中不可避免的会做一个图片预览的功能, 比如在上传图片的情况下,一个很简单的办法就是讲图片上传至服务器之后,再将文件的URL返回回来,然后异步通过这个URL加载刚刚上传的图片,实现图片的预览, 很明显的在这个过程中两次Web请求,一次发送文件,一次下载文件,到最后这个文件如果在客户端被删除(取消上传,弃用这次的上传), 这整个过程都白费了.我们希望能够在图片上传之前就能进行图片的预览,这样就避免了不必要的网络请求和时间等待. 在IE中有如下方式 var url; var file