jQuery+HTML5实现图片上传前预览效果

下面我将详细讲解“jQuery+HTML5实现图片上传前预览效果”的完整攻略。

一、准备工作

首先,需要在HTML文档中添加一个图片上传的表单元素和一个用于预览图片的图片容器,例如:

<form>
  <input type="file" id="fileInput">
</form>
<img id="previewImage" src="" alt="预览图片">

二、jQuery实现图片上传前预览

接下来,我们使用jQuery和HTML5的FileReader API实现图片上传前预览效果。具体实现步骤如下:

  1. 获取文件输入框的值,即选择的文件
var selectedFile = $("#fileInput").prop("files")[0];
  1. 判断选中的文件是否为图片类型
var fileType = selectedFile["type"];
if(fileType.indexOf("image") == -1){
  alert("请上传图片类型文件");
  return false;
}
  1. 使用FileReader API读取文件内容,并显示预览图片
var reader = new FileReader();
reader.onload = function(e){
    $("#previewImage").attr("src", e.target.result);
}
reader.readAsDataURL(selectedFile);

完整的示例代码如下:

<form>
  <input type="file" id="fileInput">
</form>
<img id="previewImage" src="" alt="预览图片">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
  $(function(){
    $("#fileInput").on("change", function(){
      var selectedFile = $("#fileInput").prop("files")[0];
      var fileType = selectedFile["type"];
      if(fileType.indexOf("image") == -1){
        alert("请上传图片类型文件");
        return false;
      }
      var reader = new FileReader();
      reader.onload = function(e){
        $("#previewImage").attr("src", e.target.result);
      }
      reader.readAsDataURL(selectedFile);
    });
  });
</script>

三、示例说明

示例一:单图上传

如上文所示的示例,适用于单图上传的情况。用户选择一张图片后,会立即在页面上显示预览效果。

示例二:多图上传

如果需要进行多图上传,可以将上述的单图上传代码进行修改,改为循环读取并预览多张图片。具体实现代码如下:

<form>
  <input type="file" id="fileInput" multiple>
</form>
<div id="previewBox"></div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
  $(function(){
    $("#fileInput").on("change", function(){
      var fileArr = [];
      for(var i=0;i<this.files.length;i++){
        var fileType = this.files[i]["type"];
        if(fileType.indexOf("image") == -1){
          alert("请上传图片类型文件");
          return false;
        }
        fileArr.push(this.files[i]);
        var reader = new FileReader();
        reader.onload = (function(file){
          return function(e){
            var img = '<img src="'+e.target.result+'" alt="预览图片">';
            $("#previewBox").append(img);
          }
        })(this.files[i]);
        reader.readAsDataURL(this.files[i]);
      }
    });
  });
</script>

在该示例中,我们新增了一个用于显示预览图片的DIV容器,并使用循环读取并预览了选择的文件列表。每次选择文件后,都会在预览容器中追加一个新的预览图像元素。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery+HTML5实现图片上传前预览效果 - Python技术站

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

相关文章

  • 如何在jQuery中找到已知类的父类名称

    在jQuery中,可以使用parent()方法获取指定元素的父元素,如果父元素中还包含其它元素或节点,可以利用.parent()方法不断向上查询父元素,直至找到满足条件的父元素。 如果我们想要找到已知类的父类名称,可以通过.parent()方法的结合上一级选择器来实现。 具体步骤如下: 选中指定元素:先选中具有目标类的元素,例如: <div class…

    jquery 2023年5月12日
    00
  • jQWidgets jqxGrid columngroups 属性

    以下是关于“jQWidgets jqxGrid columngroups 属性”的完整攻略,包含两个示例说明: 简介 jqxGrid 控件的 columngroups 属性用将列分组,以便在表头中显示分组标题。 完整攻略 以下是 jqxGrid 控件 columngroups的完整攻略: 设置 columngroups 属性 $("#jqxgrid…

    jquery 2023年5月10日
    00
  • jQuery UI Datepicker gotoCurrent选项

    jQuery UI Datepicker gotoCurrent选项 jQuery UI Datepicker插件的gotoCurrent选项用于在日期选择器中定位到当前日期。本文将详细介绍gotoCurrent选项的语法和用法,并提供两个示例。 语法 以下是gotoCurrent选项的基本语法: $( ".selector" ).dat…

    jquery 2023年5月9日
    00
  • jQuery实现下拉框多选 jquery-multiselect 的实例代码

    下面是详细讲解“jQuery实现下拉框多选 jquery-multiselect 的实例代码”的完整攻略: 什么是jquery-multiselect? jquery-multiselect 是一个基于jQuery实现的下拉框多选插件,可以让用户方便地从下拉框中选择多个选项。 如何安装jquery-multiselect? 首先,需要引入jquery和jqu…

    jquery 2023年5月27日
    00
  • springboot实现jar运行复制resources文件到指定的目录(思路详解)

    我来详细讲解一下“springboot实现jar运行复制resources文件到指定的目录(思路详解)”的完整攻略。 核心思路 在SpringBoot中,可以通过使用ResourceLoader实现将resources目录下的文件复制到指定目录。 具体的流程如下: 创建ResourceLoader对象; 使用ResourceLoader加载需要复制的资源文件…

    jquery 2023年5月27日
    00
  • jQWidgets jqxGrid showtoolbar属性

    jQWidgets jqxGrid showtoolbar属性 jQWidgets jqxGrid 是一种表格控件,用于在 Web 应用程序中创建表格。showtoolbar 属性是 jqxGrid 控件的一个属性,用于指定是否显示工具栏。本文将详细讲解 showtoolbar 的使用方法,并提供两个示例说明。 属性 showtoolbar 属性用于指定是否…

    jquery 2023年5月10日
    00
  • jQWidgets jqxFormattedInput refresh()方法

    jQWidgets jqxFormattedInput refresh()方法 jQWidgets是一个基于jQuery的UI组件库,提供了丰富的UI件和工具,包括表格图表、历、菜单等。jqxFormattedInput是jQWidgets中的一个组件,可以用于输入和格式化数字、货币、日期等。jqxFormattedInput提供了refresh()方法,用…

    jquery 2023年5月9日
    00
  • jQuery UI的Resizable alsoResize选项

    以下是关于 jQuery UI 的 Resizable alsoResize 选项的完整攻略: jQuery UI 的 Resizable alsoResize 选项 在 jQuery UI 中,可以使用 resizable 方法使元素可调整大小。 选项可以指定其他元素也随着调整大小而调整大小。 语法 $(selector).resizable({ also…

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