多图片上传预览(纯前端)

所属分类:输入-上传

 256730  585  查看评论 (229)
分享到微信朋友圈
X
多图片上传预览(纯前端) ie兼容10

更新时间:2020-09-07 06:31:55

更新说明:调整样式,去除高度固定,使图片预览不变形。


更新时间:2014-11-08 06:37:08

简单的前端多图上传预览,没有后台代码,主要解决多个浏览器显示问题兼容性。

引入:

<script src="/pace/pace.min.js"></script>
<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++) {            
            dd.innerHTML += "<div style='float:left' > <img id='img" + i + "'  /> </div>";
            var imgObjPreview = document.getElementById("img"+i); 
            if (docObj.files && docObj.files[i]) {
                //火狐下,直接设img属性
                imgObjPreview.style.display = 'block';
                imgObjPreview.style.width = '150px';
                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 = "150px";
                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>
相关插件-上传

html5文件上传插件Pure HTML5 file upload

html5文件上传插件Pure HTML5 file upload
  上传
 82179  381

jQuery多图上传带ajax提交

jQuery多图上传可删除,可以本地预览带前台接口
  上传
 82724  560

zyupload图片上传修改版

在原zyupload基础上增加了放大,删除,目录选择功能 。上传的图片可以轮播查看, 上传图片有拖拽图片和文件功能
  上传
 60765  382

js上传图片预览

js上传图片本地预览
  上传
 114204  536

讨论这个项目(229)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

    Vien 0
    2018/7/8 13:59:00
    多图?? 我怎么测试出来是单图上传呢 回复
    NO MORNING 0
    2018/4/26 13:45:21
    ie到底支持到哪里啊 回复
    huangshiwin 0
    2018/3/4 11:10:02
    ie6、7、8、9j是真的支持预览。。。,花了jq币上当了
        须将0
        2018/3/6 15:50:10
        强强强强强强强强
    回复
    Hu.R 0
    2018/2/5 22:22:49

    我的为什么打开选择图片的弹窗会要等2到3秒呢,感觉打开有点慢

    回复

    O.W.P 0
    2018/1/12 16:53:15

    谢谢分享,正好需要

    回复
    ┽未来只靠自己つ 0
    2017/12/24 12:03:09

     不知道怎么用!!~~~

        selfimpr0
        2018/5/31 23:53:20
        慢慢卡来
    回复
    树皮 0
    2017/11/27 13:31:42
    赞,但是没积分下载 回复
    张玉兰 0
    2017/11/21 11:32:41
    望海 0
    2017/11/14 14:28:41

    传给后台的话怎么传啊,本人菜鸟

    回复
    maomaomaomao 0
    2017/11/6 22:21:00

    经测试,好用呦

    回复
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
取消回复