JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】

下面是JS实现获取图片大小和预览的方法完整实例攻略:

目录

  1. 需求说明
  2. 技术方案
  3. 具体实现
  4. 完整代码
  5. 总结

1. 需求说明

我们想要做一个功能,可以让用户上传图片,并且在上传图片前可以对图片进行大小预览。同时,需要能够兼容IE和其它浏览器。

2. 技术方案

我们可以使用HTML5的File API来获取图片大小和预览图片,在IE浏览器中我们可以使用IE浏览器特有的ActiveXObject来代替File API实现相同的效果。

3. 具体实现

3.1 获取图片大小

使用File API获取图片的大小,示例代码如下:

function getImageSize(inputFile) {
  var file = inputFile.files[0];
  var img = new Image();
  var reader = new FileReader();
  reader.readAsDataURL(file);
  reader.onload = function(e) {
    img.src = e.target.result;
    img.onload = function() {
      console.log("图片大小为:" + img.width + "*" + img.height);
    }
  }
}

上述代码中,我们首先获取了用户上传的文件和一个Image对象。通过FileReader对象的readAsDataURL方法,我们将图片文件读入内存中,然后通过将图片的dataURL设置到Image对象的src属性中,来获取图片的大小。

3.2 预览图片

同样使用File API来预览图片,示例代码如下:

function previewImage(inputFile, imgElement) {
  var file = inputFile.files[0];
  var reader = new FileReader();
  reader.readAsDataURL(file);
  reader.onload = function(e) {
    imgElement.src = e.target.result;
  }
}

上述代码中,我们同样是先获取用户上传的文件,然后将图片的dataURL赋值给img标签的src属性,来完成图片的预览。

4. 完整代码

下面是结合上述两个示例的完整代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>图片上传</title>
  </head>
  <body>
    <input type="file" onchange="getImageSize(this);previewImage(this, img);" />
    <img id="img" />
    <script>
      function getImageSize(inputFile) {
        var file = inputFile.files[0];
        var img = new Image();
        var reader = new FileReader();
        reader.readAsDataURL(file);
        reader.onload = function(e) {
          img.src = e.target.result;
          img.onload = function() {
            console.log("图片大小为:" + img.width + "*" + img.height);
          }
        }
      }

      function previewImage(inputFile, imgElement) {
        var file = inputFile.files[0];
        var reader = new FileReader();
        reader.readAsDataURL(file);
        reader.onload = function(e) {
          imgElement.src = e.target.result;
        }
      }
    </script>
  </body>
</html>

5. 总结

使用File API可以轻松地实现获取图片大小和预览图片的功能。同时,为了兼容IE浏览器,我们还可以使用ActiveXObject来代替File API实现相同的效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】 - Python技术站

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

相关文章

  • JavaScript前端开发之实现二进制读写操作

    JavaScript前端开发之实现二进制读写操作 在JavaScript中,读取和操作二进制数据是一个非常实用的技能。以下是实现二进制读写操作的完整攻略。 使用ArrayBuffer 在JavaScript中实现二进制读写操作的最常用的方法是使用ArrayBuffer对象。ArrayBuffer在内部表示二进制数据,可以直接快速读取和操作。以下是创建和初始化…

    JavaScript 2023年5月19日
    00
  • JavaScript中执行上下文和执行栈

    JavaScript中执行上下文和执行栈是理解JavaScript运行机制的重要概念。在深入学习JavaScript前端开发时,必须对这些概念有一个清晰的理解。下面是JavaScript中执行上下文和执行栈的完整攻略。 执行上下文 执行上下文是JavaScript中一种抽象概念,用于描述JavaScript代码执行期间的上下文环境。每次JavaScript代…

    JavaScript 2023年5月28日
    00
  • JS正则表达式修饰符中multiline(/m)用法分析

    JS正则表达式修饰符中multiline(/m)用法是指让正则表达式中的锚点(^和$)可以匹配字符串的多行文本,而不是只匹配整个字符串的开头和结尾。下面是该修饰符的用法分析: multiline(/m)用法分析 多行模式(/m)是JS正则表达式中的一个修饰符,它可以让正则表达式中的锚点(^和$)匹配多行文本。 多行模式(/m)示例 举个例子,假设有以下字符串…

    JavaScript 2023年5月28日
    00
  • js实现将json数组显示前台table中

    非常好的问题。下面是“js实现将json数组显示前台table中”的完整攻略,包括两条示例说明。 使用JS将JSON数组显示在前台的Table中 步骤一:获取JSON数据 在此示例中,我们将使用一个包含JSON数据的外部文本文件,文件名为”data.json”。该JSON文件以数组形式存储数据,并具有以下数据字段:Name、Age、Gender。 为了将其读…

    JavaScript 2023年5月27日
    00
  • JavaScript使用cookie实现记住账号密码功能

    一、什么是cookie? 在介绍如何使用cookie实现记住账号密码功能前,我们先来了解一下什么是cookie。 Cookie是一种存储在用户计算机上的小文件。当用户访问网站时,网站会在用户计算机上存储一些数据,并在以后访问该网站时使用这些数据。Cookie主要用于跟踪用户,在用户浏览网站时保持用户状态以及在一段时间内记录用户在网站上的活动。 二、使用coo…

    JavaScript 2023年6月11日
    00
  • JavaScript基于inquirer封装一个控制台文件选择器

    下面我将详细讲解“JavaScript基于inquirer封装一个控制台文件选择器”的完整攻略。 简介 inquirer是一个流行的交互式命令行工具,它提供了很多强大的功能,包括询问用户输入、选择等功能。我们可以使用inquirer等库将一个控制台文件选择器封装起来,在命令行中方便用户选择文件。 步骤 下面是基于inquirer封装控制台文件选择器的完整步骤…

    JavaScript 2023年5月27日
    00
  • 论JavaScript模块化编程

    论JavaScript模块化编程 JavaScript的模块化编程是指将一个大型的应用程序划分为小的、互相依赖的模块,每个模块具有特定的功能,实现模块的高内聚、低耦合的特性,方便代码的维护和复用。本文将介绍如何使用JavaScript进行模块化编程,并分别通过常规模块化和ES6模块化两个实例进行说明。 常规模块化 常规模块化是JavaScript模块化的老方…

    JavaScript 2023年5月27日
    00
  • asp.net简单实现页面换肤的方法

    下面是“ASP.NET简单实现页面换肤的方法”的完整攻略: 第一步:准备工作 打开 Visual Studio,创建一个 ASP.NET Web 应用程序。 在项目中添加所需要的主题皮肤文件夹,比如:theme1、theme2。 第二步:设置样式 在 theme1 文件夹中,创建 main.css 文件,并添加相应的样式。 在 theme2 文件夹中,创建 …

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部