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">
        <title>JSP Page</title>
        <link rel="stylesheet" type="text/css" href="css/common.css" />
        <script type="text/javascript" src="js/jquery-1.11.1.js" ></script>
        <script type="text/javascript">
            //方式1:URL方式实现
            function preview1(file) {
                var img = new Image(), url = img.src = URL.createObjectURL(file);
                var $img = $(img);
                img.onload = function() {
                    URL.revokeObjectURL(url);
                    $(‘#previewImg‘).empty().append($img);
                };
            }
            //方式2:FileReader方式实现
            function preview2(file) {
                var reader = new FileReader();
                reader.onload = function(e) {
                    var $img = $(‘<img>‘).attr("src", e.target.result);
                    $(‘#previewImg‘).empty().append($img);
                };
                reader.readAsDataURL(file);
            }
            $(function() {
                //jquery实现图片点击显示
                $(".thumbs a").click(function() {
                    var largePath = $(this).attr("href");
                    var largeAlt = $(this).attr("title");
                    $("#largeImg").attr({
                        src: largePath,
                        alt: largeAlt
                    });
                    return false;
                });
                //实现图片预览功能:preview1使用URL方式实现;preview2使用FileReader方式实现
                $(‘[type=file]‘).change(function(e) {
                    var file = e.target.files[0];
                    preview2(file);
                });
            });

        </script>

    </head>
    <body>
        <form action="">
            请选择图片:<input id="myfile" name="myfile" type="file" />
            <div id="previewImg"></div>
        </form>
        <hr>
        <h1>图片预览</h1>
        <p><img id="largeImg" src="images/img1-lg.jpg" alt="Large Image" /></p>
        <p class="thumbs">
            <a href="images/img2-lg.jpg" title="image2"><img src="images/img2-thumb.jpg"></a>
            <a href="images/img3-lg.jpg" title="image3"><img src="images/img3-thumb.jpg"></a>
            <a href="images/img4-lg.jpg" title="image4"><img src="images/img4-thumb.jpg"></a>
            <a href="images/img5-lg.jpg" title="image5"><img src="images/img5-thumb.jpg"></a>
            <a href="images/img6-lg.jpg" title="image6"><img src="images/img6-thumb.jpg"></a>

        </p>
    </body>
</html>

common.css文件

body {
    margin: 20px auto;
    padding: 0;
    width: 580px;
    font: 75%/120% Arial, Helvetica, sans-serif;
    text-align:center;
}
h2 {
    font: bold 190%/100% Arial, Helvetica, sans-serif;
    margin: 0 0 .2em;
}
h2 em {
    font: normal 80%/100% Arial, Helvetica, sans-serif;
    color: #999999;
}
#largeImg {
    border: solid 1px #ccc;
    width: 550px;
    height: 400px;
    padding: 5px;
}
.thumbs img {
    border: solid 1px #ccc;
    width: 100px;
    height: 100px;
    padding: 4px;
}
.thumbs img:hover {
    border-color: #FF9900;
}

#large{
    position:absolute;
    z-index:999;
}

URL.revokeObjectURL方法Opera不支持,FileReader除IE9及以下不支持,其它浏览器都支持。

时间: 2024-08-02 15:14:09

HTML5实现图片预览功能的相关文章

原生js实现ajax的文件异步提交功能、图片预览功能.实例

<%-- Created by IntelliJ IDEA. User: yh Date: 2016/12/14 Time: 17:13 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ include file=&

实现图片预览功能

本来以为图片预览功能非常的简单,就是在file标签change时获取路径展示给用户,但是浏览器处于安全考虑并不会让脚本获得绝对路径(这会在一定程度上暴露用户的文件 目录),只能获取文件名.所以要通过和后台的配合,在file标签发生change事件时,将图片以ajax的方式发送到后台,后台将图片保存在服务器,然后讲文件地址返回回来,再由前端展示给用户,完成预览功能! 文件的ajax并不是太容易,所以使用了jquery的插件,jquery.form.js.一些参数性问题可以参考form插件. <fo

微信小程序的实现图片预览功能

index.wxml <image src="../../images/01.jpg"class="userinfo-avatar" bindtap="previewImg01" background-size="cover"mode="aspectFill"></image> index.js //图片预览功能 previewImg01: function (event) { va

利用js加载本地图片预览功能

直接上代码: 经测试,除safari6包括6以下不支持,其他均可正常显示. 原因:safari6不支持filereader,同时不能使用IE滤镜导致失效. fix: 可以利用canvas,解决safari6的问题 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

JavaScript图片上传前的图片预览功能

JS代码: 1 //js本地图片预览,兼容ie[6-9].火狐.Chrome17+.Opera11+.Maxthon3 2 function PreviewImage(fileObj, imgPreviewId, divPreviewId) { 3 var allowExtention = ".jpg,.bmp,.gif,.png"; //允许上传文件的后缀名document.getElementById("hfAllowPicSuffix").value; 4 v

使用ivx实现图片预览功能的经验总结

在实际案例中经常会需要展示一个图片列表,但是列表中由于图片数量比较多,所以每张图片都会比较小.这时我们需要一个功能,能够点击某一张图片就显示这张图片的大图,今天就是说一下ivx中如何实现这种预览效果. 1.图片列表demo中的图片列表是用循环组件创建的,图片资源已经存放在对象数组里,for容器下的图片组件已经绑定了当前数据中的图片资源.父容器是一个行并且开启了自动换行,每行显示两张图片.2.小图与大图上面循环创建出来的就是小图,我们还需要用一个大的图片组件来显示我们点击后的大图.这里使用了一个横

JS实现的图片预览功能

之前的博文有实现过图片上传预览,但那种方法是预览时就将图片上传,会产生很大的浪费空间.找到了之前有人写的用JS实现的图片预览,就说用js将上传的图片显示,上传代码在之前的博文中有写到. 以下是实现的代码: body: <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tbody> <tr> <td heig

fileupload图片预览功能

FileUpload上传图片前首先预览一下 看看效果: 在专案中,创建aspx页面,拉上FileUpload控件一个Image,将用来预览上传时的图片. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> <!DOCTYPE html> <html xmln

小程序实现图片预览功能

var current = e.target.dataset.src; //预览图片 wx.previewImage({ current: current, urls: this.data.product.photoUrls, }); current:表示当前需要预览的图片,(默认图片数组的第一张) urls:表示图片的数组 当然你需要在页面绑定事件 <image mode="widthFix" data-src="{{item}}" src="{{