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

所属分类:输入-上传

 254611  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>
相关插件-上传

pc端图片批量上传,可拖动图片交换位置

jQuery可批量上传图片 可以拖动交换位置 可删除
  上传
 62953  459

jQuery移动端多图上传(带裁剪功能)

适应于手机端上传图片的功能,附带上传图片裁剪功能
  上传
 39471  355

基于amazeui头像上传

基于amazeui框架,设计的头像上传插件
  上传
 69776  488

图片预览上传插件bootstrap-fileinput.js

bootstrapfileinput预览上传图片并使用FmData上传,上传url根据实际情况填写
  上传
 85073  494

讨论这个项目(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

    经测试,好用呦

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