• js上传图片前预览方法(支持预览多个图片)


    运用js实现上传图片前的预览(支持多张图片),实现的例子如下:

    1、源码例子:

    1)Js脚本页面

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>js上传图片预览</title>
    </head>
    <script type="text/javascript">
    
        //下面用于多图片上传预览功能
        function setImagePreviews(avalue) {
            //获取选择图片的对象
            var docObj = document.getElementById("doc");
            //后期显示图片区域的对象
            var dd = document.getElementById("dd");
            dd.innerHTML = "";
            //得到所有的图片文件
            var fileList = docObj.files;
            //循环遍历
            for (var i = 0; i < fileList.length; i++) {    
                //动态添加html元素        
                dd.innerHTML += "<div style='float:left' > <img id='img" + i + "'  /> </div>";
                //获取图片imgi的对象
                var imgObjPreview = document.getElementById("img"+i); 
                
                if (docObj.files && docObj.files[i]) {
                    //火狐下,直接设img属性
                    imgObjPreview.style.display = 'block';
                    imgObjPreview.style.width = '200px';
                    imgObjPreview.style.height = '180px';
                    //imgObjPreview.src = docObj.files[0].getAsDataURL();
                    //火狐7以上版本不能用上面的getAsDataURL()方式获取,需要以下方式
                    imgObjPreview.src = window.URL.createObjectURL(docObj.files[i]);   //获取上传图片文件的物理路径
                }
                else {
                    //IE下,使用滤镜
                    docObj.select();
                    var imgSrc = document.selection.createRange().text;
                    //alert(imgSrc)
                    var localImagId = document.getElementById("img" + i);
                   //必须设置初始大小
                    localImagId.style.width = "200px";
                    localImagId.style.height = "180px";
                    //图片异常的捕捉,防止用户修改后缀来伪造图片
                    try {
                        localImagId.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
                        localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
                    }
                    catch (e) {
                        alert("您上传的图片格式不正确,请重新选择!");
                        return false;
                    }
                    imgObjPreview.style.display = 'none';
                    document.selection.empty();
                }
            }  
            return true;
        }
    
    </script>

    2)html页面

    <body>
        <div style="margin :0px auto; 990px;">
            <input type="file"  name="file" id="doc" multiple="multiple"  style="150px;" onchange="javascript:setImagePreviews();" accept="image/*" />
            <div id="dd" style=" 990px;"></div>
        </div>
    </body>
    </html>

    2、结果视图

    1)单个图片预览

    2)多个图片预览

    3)参考例子来自:

    http://blog.csdn.net/hj960511/article/details/51721134

  • 相关阅读:
    Git_学习_01_ 常用 Git 命令清单
    Git_错误_03_ Git提交时显示用户 unknown
    Java微信小程序开发_00_资源帖
    Git_错误_02_error: src refspec master does not match any
    Java企业微信开发_08_素材管理之下载微信临时素材到本地服务器
    Java企业微信开发_07_JSSDK多图上传
    Java企业微信开发_07_总结一下企业微信的配置
    Java_数据交换_dom4j_01_解析xml
    Git_学习_00_资源帖
    小结:线段树 & 主席树 & 树状数组
  • 原文地址:https://www.cnblogs.com/xielong/p/6279465.html
Copyright © 2020-2023  润新知