jQuery实现多张图片上传预览(不经过后端处理)

发布时间 - 2026-01-11 00:54:02    点击率:

效果图:

图(1)

图(2)

代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery图片上传预览(不经过后端处理)</title>
<script src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
<style>
</style>
</head>
<body>
<div>
 <img class="ImgPr"/>
 <input type="file" class="up" />
</div>
<div>
 <img class="ImgPr"/>
 <input type="file" class="up" />
</div>
<script>
jQuery.fn.extend({
   uploadPreview: function(opts) {
    var _self = this,
      _this = $(this);
    opts = jQuery.extend({
     Img: "ImgPr",
     Width: 100,
     Height: 100,
     ImgType: ["gif", "jpeg", "jpg", "bmp", "png"],
     Callback: function() {}
    }, opts || {});
    _self.getObjectURL = function(file) {
     var url = null;
     if (window.createObjectURL != undefined) {
      url = window.createObjectURL(file)
     } else if (window.URL != undefined) {
      url = window.URL.createObjectURL(file)
     } else if (window.webkitURL != undefined) {
      url = window.webkitURL.createObjectURL(file)
     }
     return url
    };
    _this.change(function() {
     if (this.value) {
      if (!RegExp("\.(" + opts.ImgType.join("|") + ")$", "i").test(this.value.toLowerCase())) {
       alert("选择文件错误,图片类型必须是" + opts.ImgType.join(",") + "中的一种");
       this.value = "";
       return false
      }
      //高版本Jquey使用 if ($.support.leadingWhitespace)
      if ($.support.leadingWhitespace) { //低版本jquery中使用$.browser.msie

       console.log(_self.getObjectURL(this.files[0]));
       try {
        _this.parent('div').find("." + opts.Img).attr('src', _self.getObjectURL(this.files[0]));
       } catch (e) {
        var src = "";
        var obj = _this.parent('div').find("." + opts.Img);
        var div = obj.parent("div")[0];
        _self.select();
        if (top != self) {
         window.parent.document.body.focus()
        } else {
         _self.blur()
        }
        src = document.selection.createRange().text;
        document.selection.empty();
        obj.hide();
        obj.parent("div").css({
         'filter': 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)',
         'width': opts.Width + 'px',
         'height': opts.Height + 'px'
        });
        div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src
       }
      } else {
       _this.parent('div').find("." + opts.Img).attr('src', _self.getObjectURL(this.files[0]))
      }
      opts.Callback()
     }
    })
   }
  });
  $(".up").click(function(){
   $(this).uploadPreview({
    Img: "ImgPr"
   });
  })

</script>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# jquery图片上传预览  # jquery多图上传预览  # jquery实现多张图片上传预览  # jQuery+ThinkPHP实现图片上传  # jQuery实现图片上传预览效果功能完整实例【测试可用】  # thinkphp jquery实现图片上传和预览效果  # html5以及jQuery实现本地图片上传前的预览代码实例讲解  # 图片上传  # 不经过  # 后端  # input  # type  # fn  # file  # extend  # div  # body  # js  # min  # ImgPr  # img  # Height  # Width  # ImgType  # jpg  # jpeg  # gif 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在橙子建站中快速调整背景颜色?  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  php485函数参数是什么意思_php485各参数详细说明【介绍】  PHP 500报错的快速解决方法  在centOS 7安装mysql 5.7的详细教程  如何在局域网内绑定自建网站域名?  详解jQuery中的事件  如何用虚拟主机快速搭建网站?详细步骤解析  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  Android中AutoCompleteTextView自动提示  如何快速搭建自助建站会员专属系统?  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  html5的keygen标签为什么废弃_替代方案说明【解答】  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  活动邀请函制作网站有哪些,活动邀请函文案?  如何用PHP工具快速搭建高效网站?  如何快速搭建虚拟主机网站?新手必看指南  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  Laravel如何发送系统通知?(Notification渠道示例)  Laravel如何使用Service Container和依赖注入?(代码示例)  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  LinuxShell函数封装方法_脚本复用设计思路【教程】  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  Laravel怎么使用Intervention Image库处理图片上传和缩放  WEB开发之注册页面验证码倒计时代码的实现  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  Laravel distinct去重查询_Laravel Eloquent去重方法  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  Laravel定时任务怎么设置_Laravel Crontab调度器配置  如何在云主机上快速搭建网站?  如何在建站之星绑定自定义域名?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  北京的网站制作公司有哪些,哪个视频网站最好?  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  java ZXing生成二维码及条码实例分享  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  Python正则表达式进阶教程_复杂匹配与分组替换解析  Laravel PHP版本要求一览_Laravel各版本环境要求对照  成都网站制作公司哪家好,四川省职工服务网是做什么用?