jQuery实现图片上传预览效果功能完整实例【测试可用】

jQuery实现图片上传预览效果功能完整实例攻略

在网页开发中,图片上传是一个经常用到的功能。为了方便用户预览刚上传的图片,我们可以使用jQuery实现图片上传预览效果。以下是具体实现步骤:

1. HTML结构

首先,我们需要在HTML中添加一个input元素,并设置type为file,以实现用户上传图片的功能。

<input type="file" id="fileInput">

同时,我们需要在HTML中设置一个div元素,用于显示上传的图片。

<div id="imgPreview">
  <img id="preview" src="">
</div>

2. jQuery实现

  1. 给input元素绑定change事件,实现当用户选择了要上传的文件时,上传的图片会自动显示在预览区。
$(document).ready(function() {
  $("#fileInput").change(function() {
    var objUrl = getObjectURL(this.files[0]); //获取文件路径
    if (objUrl) {
      $("#preview").attr("src", objUrl); //将图片路径赋值给img元素
    }
  });
});

function getObjectURL(file) {
  var url = null;
  if (window.createObjectURL != undefined) { //URL.createObjectURL()方法只有Chrome和FireFox支持
    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;
}
  1. 当用户上传的文件不是图片时,我们需要用另一张图片替代原本的预览图,以提醒用户上传文件格式不正确。
$(document).ready(function() {
  $("#fileInput").change(function() {
    var file = this.files[0];
    var objUrl = getObjectURL(file);
    if (objUrl) {
      $("#preview").attr("src", objUrl);
    } else { //替换为提示图片
      $("#preview").attr("src", "warning.jpg");
    }
  });
});

3. 完整示例

在这里,我们提供两个示例以展示jQuery实现图片上传预览效果的完整流程。

  1. 示例一:只能上传图片文件,其他文件上传会提示用户,示例代码如下:
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>jQuery实现图片上传预览效果</title>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
  <input type="file" id="fileInput">
  <div id="imgPreview">
    <img id="preview" src="">
  </div>
  <script>
    $(document).ready(function() {
      $("#fileInput").change(function() {
        var file = this.files[0];
        if (file.type.indexOf("image") === 0) { //判断是否为图片类型
          var objUrl = getObjectURL(file);
          if (objUrl) {
            $("#preview").attr("src", objUrl);
          }
        } else { //提示用户上传文件类型不正确
          alert("请上传图片文件!");
        }
      });
    });
    function getObjectURL(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;
    }
  </script>
</body>
</html>
  1. 示例二:上传任意类型的文件,但不是图片文件的上传会使用预设的图片替代原本的预览图,示例代码如下:
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>jQuery实现图片上传预览效果</title>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
  <input type="file" id="fileInput">
  <div id="imgPreview">
    <img id="preview" src="">
  </div>
  <script>
    $(document).ready(function() {
      $("#fileInput").change(function() {
        var file = this.files[0];
        var objUrl = getObjectURL(file);
        if (objUrl) {
          $("#preview").attr("src", objUrl);
        } else { //上传非图片文件时使用预设的图片替代原本的预览图
          $("#preview").attr("src", "warning.jpg");
        }
      });
    });
    function getObjectURL(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;
    }
  </script>
</body>
</html>

结束语

通过以上两个实例,我们可以看到jQuery实现图片上传预览效果的方法非常简单,只需要运用input元素的change事件和图片的获取、替换等方法即可实现。当然,你也可以根据自己的需求对以上示例进行修改和优化,达到更好的使用效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery实现图片上传预览效果功能完整实例【测试可用】 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • 如何用jQuery删除父元素,而不是其子元素

    想要用jQuery删除父元素,需要使用到jQuery的父元素选择器和删除方法。具体步骤如下: 使用父元素选择器定位到要删除的父元素。父元素选择器使用 parent() 方法来定位,如下所示: javascript$(‘#child’).parent() 上面的例子中,我们使用了ID选择器 #child 定位到一个子元素,然后使用 parent() 方法找到了…

    jquery 2023年5月12日
    00
  • jQWidgets jqxTreeGrid focus()方法

    下面是详细讲解”jQWidgets jqxTreeGrid focus()方法”的攻略说明。 1. 简介 jQWidgets是一款专业的Web UI库,其中包含了各种实用的UI组件,如Grid、TreeGrid、Chart等等。jqxTreeGrid是其中的一种组件,它是基于DataTable的表格控件,具备类似TreeView的树形结构,支持对表头、行、单…

    jquery 2023年5月12日
    00
  • 编写高效jQuery代码的4个原则和5个技巧

    让我来详细讲解“编写高效jQuery代码的4个原则和5个技巧”的完整攻略。 原则 1. 简化选择器 在使用jQuery选择器时,尽可能简化选择器,避免选择大量节点,这会降低程序的性能。 示例: // 不好的选择器 $(‘.container ul li a’).click(function () { // do something }); // 好的选择器 …

    jquery 2023年5月28日
    00
  • jQWidgets jqxDropDownList closeDelay属性

    jQWidgets jqxDropDownList closeDelay属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件和工具包。jqxDropDownList是Widgets组件下的组件。本文将详细介绍jqxDropDownList的closeDelay`属性,包括用法、语法和示例。 closeDelay属性的基本语法 c…

    jquery 2023年5月10日
    00
  • JQuery中Ajax()的data参数类型实例分析

    JQuery中Ajax()的data参数类型实例分析 在JQuery中通过Ajax()方法可以轻松地向服务器发送HTTP请求并获取返回数据,其中的data参数用于指定发送到服务器的数据。本文将详细讲解data参数的类型及使用实例。 data参数类型 字符串类型 以字符串形式直接发送数据,如: $.ajax({ url: "test.php&quot…

    jquery 2023年5月28日
    00
  • jQuery增加、删除及修改select option的方法

    jQuery是一种快速的、小型的JavaScript库,设计和开发的目的是使HTML文档遍历和操作更加方便、快捷。下面我们将介绍如何使用jQuery对select控件的option进行增加、删除和修改。 插入option元素 使用jQuery的append()方法可以向select添加新的option元素。例如,以下代码将向id为“mySelect”的sel…

    jquery 2023年5月28日
    00
  • 谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法

    下面我来为你详细讲解“基于iframe、FormData、FileReader三种无刷新上传文件的方法”的完整攻略。 1. 基于iframe无刷新上传文件 1.1 基本原理 采用表单上传的形式,利用iframe的特性,将上传的文件放在 iframe 中,并获取 iframe 中的返回值。 1.2 实现步骤 创建一个 form 表单,并设置属性 enctype…

    jquery 2023年5月27日
    00
  • jQWidgets jqxComboBox rtl属性

    以下是关于“jQWidgets jqxComboBox rtl属性”的完整攻略,包含两个示例说明: 简介 jqxComboBox 控件提供了 rtl 属性,该属性用于设置下拉列表的文本方向。通过使用 rtl 属性,我们可以控制下拉列表的文本方向以便更好地适应不同的语言和文化。 详细攻略 以下是 jqxComboBox 控件的 rtl 属性的详细略: rtl …

    jquery 2023年5月11日
    00
合作推广
合作推广
分享本页
返回顶部