input file上传 图片预览功能实例代码

下面是详细讲解“input file上传图片预览功能实例代码”的完整攻略。

输入文件上传图片预览功能实例代码

简介

在web开发中,上传图片是一个很常用的功能。而预览上传图片则是一个更加友好的交互体验。在本文中,我们将演示如何使用HTML、CSS、JavaScript实现一个上传图片并预览的功能。

HTML部分

首先,我们需要在HTML中添加一个文件选择框和一个图片预览框。HTML代码如下:

<input type="file" multiple onchange="previewImages()">
<div id="preview"></div>

其中,文件选择框使用input标签,type属性为file。onchange属性指定了一个JavaScript函数,这个函数在文件选择框中选择文件后触发。预览框使用了一个div标签,id属性为preview。

JS部分

在JS部分,我们需要编写一个预览图片的函数。这个函数将接收一个参数,即文件选择框中选中的文件对象。函数会将文件对象转换为一个URL,然后将其添加为一个img标签的src属性。JS代码如下:

function previewImages() {
  var preview = document.getElementById("preview");
  // 获取文件选择框中选中的所有文件
  var fileArr = document.getElementById("upload").files;
  // 遍历文件数组
  for (var i = 0; i < fileArr.length; i++) {
    var reader = new FileReader();
    // 将文件读取为Data URL
    reader.readAsDataURL(fileArr[i]);
    // 当文件读取完成时触发
    reader.onload = function (e) {
      var img = document.createElement("img");
      img.src = e.target.result;
      preview.appendChild(img);
    }
  }
}

在函数中,我们首先获取到预览框的DOM对象,并获取输入文件框选中的文件数组。然后遍历文件数组,使用FileReader对象读取文件的Data URL。当读取完成时,将Data URL转换成img标签的src,最后将img标签添加到预览框中。

CSS部分

在CSS部分,我们需要为预览框添加一些样式,以使其显示更加美观。CSS代码如下:

#preview {
  display: flex;
  flex-wrap: wrap;
}

#preview img {
  width: 150px;
  height: 150px;
  object-fit: cover;
  margin: 10px;
}

以上CSS代码中,我们使用了flex布局,使图片能够自动换行。每张图片使用了一个宽高为150px的正方形框并使用了object-fit: cover将图片填满框体,使其显示效果更加美观。

示例说明

下面提供两个示例代码,分别为使用jQuery和Vue.js实现上传图片预览功能。

示例1:使用jQuery实现

HTML部分

<input type="file" multiple id="upload">
<div id="preview"></div>

JS部分

$("#upload").on("change", function() {
  var preview = $("#preview");
  $.each(this.files, function() {
    var reader = new FileReader();
    var file = this;
    reader.onload = function(e) {
      $("<img>").attr({
        "src": e.target.result,
        "title": file.name
      }).appendTo(preview);
    }
    reader.readAsDataURL(file);
  });
});

在示例1中,我们使用了jQuery的选择器和each方法,来遍历文件数组,并且使用jQuery的方式向DOM中添加img元素实现预览图片功能。

示例2:使用Vue.js实现

HTML部分

<div id="app">
  <input type="file" multiple v-on:change="previewImages">
  <div id="preview">
    <img v-for="(img, index) in images" v-bind:key="index" v-bind:src="img">
  </div>
</div>

Javascript部分

new Vue({
  el: '#app',
  data: {
    images: [],
  },
  methods: {
    previewImages: function(e) {
      var files = e.target.files || e.dataTransfer.files;
      if (!files.length) return;
      var vm = this;
      for (var i = 0; i < files.length; i++) {
        var reader = new FileReader();
        reader.onload = function(e) {
          vm.images.push(e.target.result);
        };
        reader.readAsDataURL(files[i]);
      }
    }
  },
});

在示例2中,我们使用Vue.js提供的v-on指令来监听文件选择框的change事件。在previewImages方法中,我们使用了Vue.js提供的数据绑定功能,将选择的图片文件转换为Data URL,并存储在images数组中。最终,使用了Vue指令v-for来遍历images数组,动态生成预览图片的img标签。

至此,我们已经实现了使用原生HTML、CSS和JavaScript以及jQuery、Vue.js框架实现上传图片预览功能的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:input file上传 图片预览功能实例代码 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JavaScript 直接操作本地文件的实现代码

    为了直接操作本地文件,我们需要使用Node.js中的fs模块。fs模块提供了一些用于读取、写入、修改和删除文件的方法。下面是实现JavaScript直接操作本地文件的流程: 1. 安装Node.js 在电脑上安装Node.js,可参考官方文档(https://nodejs.org/)。 2. 使用Node.js的fs模块 在Node.js中,通过requir…

    JavaScript 2023年5月27日
    00
  • JavaScript的ExtJS框架中表格的编写教程

    下面是JavaScript的ExtJS框架中表格的编写教程的完整攻略。 1. 概述 JavaScript的ExtJS框架提供了丰富的表格组件,能够满足各种需求。本攻略将详细介绍如何在ExtJS中编写表格组件。 2. 表格的基本结构 表格组件由表头和表格数据两部分组成。表头定义表格列的名称和宽度,表格数据为表格中实际展示的数据。 3. 表头的编写 表头的编写需…

    JavaScript 2023年6月10日
    00
  • iframe实用操作锦集

    下面我将为你详细讲解“iframe实用操作锦集”的完整攻略。 什么是iframe? iframe 即内联框架,它可以将其他页面嵌入到当前页面中。通过 iframe 可以方便地实现异步加载、跨域嵌入等功能。下面是最基本的 iframe 使用方法: <iframe src="https://www.example.com">&lt…

    JavaScript 2023年6月11日
    00
  • JS实现的驼峰式和连字符式转换功能分析

    下面是详细讲解“JS实现的驼峰式和连字符式转换功能分析”的完整攻略。 1. 转换原理解析 1.1 驼峰命名法 驼峰命名法是一种命名规则,通常用来表示变量、函数、属性等的名称。它有以下特点: 单词之间用大写字母或首字母大写的字母分隔; 第一个单词的首字母小写或大写均可。 例如,firstName、NameList、myFunction等均为驼峰命名法的示例。 …

    JavaScript 2023年5月28日
    00
  • JS判断浏览器之Navigator对象

    一、在JS中判断用户的浏览器可以使用Navigator对象,具体的步骤如下: 1.获取Navigator对象。在JS中,可以通过window.navigator属性来获取Navigator对象。 2.获取浏览器信息。在Navigator对象中,有一些属性可以获取浏览器的信息,如: userAgent:浏览器的User Agent字符串,可以用来检测浏览器的类…

    JavaScript 2023年6月11日
    00
  • 教你javascript如何获取对象的key和value

    当需要遍历一个JavaScript对象时,我们可能需要获取其key和value。下面是获取JavaScript对象key和value的两种方式: 获取对象key的方法 我们可以使用 for…in 循环语句来获取JavaScript对象的所有key: for(let key in obj) { console.log(key); // 输出该对象的所有ke…

    JavaScript 2023年5月27日
    00
  • JavaScript高级程序设计(第3版)学习笔记8 js函数(中)

    JavaScript高级程序设计(第3版)学习笔记8 js函数(中)主要围绕函数作用域、闭包、函数式编程和函数对象四大主题展开,下面分别做详细说明: 函数作用域 JavaScript中的函数作用域是通过函数定义时的位置来决定的,即内部函数可以访问外部函数中的变量和函数,而外部函数无法访问内部函数中的变量。通过这种作用域链的形式来维护作用域,每个函数被创建时都…

    JavaScript 2023年5月27日
    00
  • js正则表达式中exec用法实例

    JS正则表达式中exec用法实例 正则表达式在JavaScript中是十分常用的,exec()方法是JavaScript中正则表达式的一个重要实例方法。本文将详细讲解JS正则表达式中exec用法实例,希望对大家有所帮助。 exec()方法简述 JavaScript exec()方法是Js内置的正则表达式实例方法,用来检索字符串中与正则表达式想匹配的字符串,并…

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