【HTML】<input>

news2024/11/23 12:01:05

分类

text

password

number

button

reset

submit

hidden

radio

checkbox

file

image

color

range

tel

email(火狐有校验,360浏览器无校验。)

url

datetime(火狐、360浏览器不支持)

search

date、month、week、time、datetime-local

input[type=button]

按钮分类

<button>提交</button>
<input type="submit" value="提交">
<input type="reset" value="重置">

换行

<input type="button" value="不会换行">
<button type="button">会换行,最大换行是240px</button>

input[type=file] 上传

accept属性

accept=“image/png, image/jpeg”

accept=".png, .jpg, .jpeg" 

accept=".doc,.docx,.xml,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document" 

multiple属性

手动上传文件

上传前:

 上传后:

 

第一步:页面效果

<el-form-item label="上传文件" >
  <div class="upload-demo">

    <!-- 原生控件 -->
    <input id="file" ref="file" type="file" name="file" @change="fileChange"  accept=".xlsx,.xls" />

    <!-- 上传成功后显示图片 -->
    <div class="upload-box" v-if="form.name">
      <div class="file">
        <img class="file-img" src="../../../assets/images/type.png">
        <p class="file-name">{{form.name}}</p>
      </div>
      <div class="reload">重新上传</div>
    </div>

    <!-- 上传控件 -->
    <div class="upload-box" v-else>
      <img class="file-src" src="../../../assets/images/upload.png">
      <div class="el-upload__text">点击文件或拖到此处上传</div>
    </div>
  </div>

  <!-- 提示文字 -->
  <div class="el-upload__tip">目前支持 xlsx,xls格式文件</div>
</el-form-item>

<el-form-item>
  <el-button type="primary" size="mini" @click="submit()" :disabled="form.name == ''">导入</el-button>
  <el-button size="mini" @click="cancel()">取消</el-button>
</el-form-item>
data() {
  return {
    form: {
      file:'',
      name:'',
    },
  };
},

// 选择文件
fileChange(e) {
  this.form.file = e.target.files[0];
  this.form.name = this.form.file.name
},

// 上传文件
submit() {

  // 文件
  const fd = new FormData();
  fd.set("file", this.form.file);
  
  // 调取接口
  uploadFile(fd).then(res => {
    if(res.code == 200) {
      this.info = res.data
    }else {
      this.success = false
    }
  });
}

// 取消上传
cancel() {
  this.$refs.file.value ='' // 清空上传文件中遗留文件
  this.form.file = {};
  this.form.name = ''
}
export function uploadFile(data) {
  return request({
    url: '/uploadFile',
    method: 'post',
    headers: { "Content-Type": "multipart/form-data" },
    data: data,
  })
}
.upload-demo {
  width: 360px;
  height: 180px;
  text-align: center;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  background-color: #fff;
  border: 1px dashed #d9d9d9;
  border-radius: 6px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

input#file {
  height: 100%;
  width: 100%;
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  cursor: pointer;
}
.upload-box {
  height: 100%;
  width:100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 0 20px;
  position: absolute;
  top: 0;
  left: 0;
}
.file {
  display: flex;
  align-items: center;
}
.file-img {
  height: 20px;
  width: 20px;
  margin: 0 3px 0 0;
}

.file-name {
  margin-right: 30px;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
  max-width: 250px;
}
.file-name-all {
  margin-right: 30px;
}

.file-down {
  display: flex;
  align-items: center;
  cursor: pointer;
  color: rgba(19,124,239,1);
}

.reload {
  margin-top: 20px;
  color: rgba(19,124,239,1);
  cursor: pointer;
}
.file-src {
  height: 30px;
  width: 30px;
}

.el-upload__text {
  margin-top: 20px;
}

.el-upload__tip {
  margin: 0;
}

::v-deep .el-upload--picture-card {
  margin:0 20px 20px 0;
}

::v-deep .el-upload-dragger {
  height: 100%;
  width: 100%;
}

取消上传或关闭弹窗再打开后,上传相同图片无法成功

this.$refs.file.value ='' // 清空上传文件中遗留文件

选择后得到base64码,可以预览图片

// 选择文件
fileChange(e) {
  this.form.file = e.target.files[0];
  this.form.name = this.form.file.name

  // 展示成图片Base64 格式
  var reader = new FileReader()
  reader.readAsDataURL(this.form.file)
  reader.onload = function (result) {
      console.log(result)
      this.img = result.target.result 
   }
},

 在页面中预览

 <img :src=" 'data:image/png;base64,' + this.img">

但是因为现在上传的是excel所以无法预览。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/841892.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络-三种交换方式

计算机网络-三种交换方式 电路交换(Circuit Switching) 电话交换机接通电话线的方式称为电路交换从通信资源分配的角度来看&#xff0c;交换(Switching)就是按照某种方式动态的分配传输线路的资源 电话交换机 为了解决电话之间通信两两之间连线过多&#xff0c;所以产生了电话…

【Docker】docker镜像+nginx部署vue项目:

文章目录 一、文档&#xff1a;二、打包vue项目&#xff1a;三、配置nginx&#xff1a;四、配置Dockerfile&#xff1a;五、构建镜像&#xff1a;六、运行容器&#xff1a;七、最终效果&#xff1a; 一、文档&#xff1a; 【1】菜鸟教程&#xff1a;https://www.runoob.com/do…

windows下以指定用户访问SMB服务器进行读写

一 概述 最近遇到一个问题&#xff0c;linux 的 smb服务器开启匿名访问&#xff0c;windows访问linux文件夹不需要用户名密码就可以进去使用&#xff0c;但是存在一个问题&#xff0c;ssh连接到linux 后修改的文件&#xff0c;在windows已smb方式下打开某个文件修改 是没有权限…

HTML5 Canvas和Svg:哪个简单且好用?

HTML5 Canvas 和 SVG 都是基于标准的 HTML5 技术&#xff0c;可用于创建令人惊叹的图形和视觉体验。 首先&#xff0c;让我们花几句话介绍HTML5 Canvas和SVG。 什么是Canvas? Canvas&#xff08;通过 标签使用&#xff09;是一个 HTML 元素&#xff0c;用于在用户计算机屏幕…

Vue3+SpringBoot快速开发模板

起因&#xff1a;个人开发过程经常会使用到Vue3SpringBoot技术栈来开发项目&#xff0c;每次在项目初始化时都需要涉及一些重复的整理工作&#xff0c;于是结合一些个人觉得不错的前后端模板进行整合&#xff0c;打通一些大多数项目都需要的实现的基础功能&#xff0c;以便于快…

探讨|使用或不使用机器学习

动动发财的小手&#xff0c;点个赞吧&#xff01; 机器学习擅长解决某些复杂问题&#xff0c;通常涉及特征和结果之间的困难关系&#xff0c;这些关系不能轻易地硬编码为启发式或 if-else 语句。然而&#xff0c;在决定 ML 是否是当前给定问题的良好解决方案时&#xff0c;有一…

opencv基础-38 形态学操作-闭运算(先膨胀,后腐蚀)cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

闭运算是先膨胀、后腐蚀的运算&#xff0c;它有助于关闭前景物体内部的小孔&#xff0c;或去除物体上的小黑点&#xff0c;还可以将不同的前景图像进行连接。 例如&#xff0c;在图 8-17 中&#xff0c;通过先膨胀后腐蚀的闭运算去除了原始图像内部的小孔&#xff08;内部闭合的…

PCIe枚举源码分析

枚举的过程也就是RC的系统软件通过配置空间访问来确定以及扫描整个总线拓扑的过程。 PCIe的拓扑结构如下&#xff1a; • Root Complex是树的根&#xff0c;它一般实现了一个主桥设备(host bridge), 一条内部PCIe总线(BUS 0)&#xff0c;以及通过若干个PCI bridge扩展出一些r…

性能测试监控指标及分析调优指南

目录 一、哪些因素会成为系统的瓶颈 二、哪些指标做为衡量系统的性能 三、性能测试注意的问题 四、定位性能问题的时候&#xff0c;可以使用自下而上的策略分析排查 五、优化性能问题的时候&#xff0c;可以使用自上而下的策略进行优化 一、哪些因素会成为系统的瓶颈 CPU&…

Vercel 部署的项目发现APIkeys过期了怎么办

好不容易部署的Vercel&#xff0c;发现APIkeys过期了显示&#xff0c;查了查资料发现只要更新下新的apikeys&#xff0c;然后再重新部署下就好了。 重新设置APIkeys 1.1. 进去 Vercel 项目内部控制台&#xff0c;点击顶部的 Settings 按钮&#xff1b; 1.2 点击环境变量Enviorn…

K8S系列文章之 开源的堡垒机 jumpserver

一、jumpserver作为一款开源的堡垒机&#xff0c;不管是企业还是个人&#xff0c;我觉得都是比较合适的&#xff0c;而且使用也比较简单。 二、这里记录一下安装和使用过程。 1、安装&#xff0c;直接docker不是就行 version: 3 services:xbd-mysql:image: mysql:8.0.19restart…

Spring Data JPA源码

导读: 什么是Spring Data JPA? 要解释这个问题,我们先将Spring Data JPA拆成两个部分&#xff0c;即Sping Data和JPA。 从这两个部分来解释。 Spring Data是什么? 摘自: https://spring.io/projects/spring-data Spring Data’s mission is to provide a familiar and cons…

Nginx可视化NginxWebUI

Nginx可视化Web Github:https://github.com/cym1102/nginxWebUI 支持window、linux 安装方式支持docker、window直接运行 jar包cmd运行&#xff1a;port可自行替换 java -jar -Dfile.encodingUTF-8 D:/软件/Nginx-Ui/nginxWebUI-3.6.3.jar --server.port8380 --project.hom…

nvm下载安装配置

一、作用 nvm是node版本管理的工具&#xff0c;具有管理、下载、切换node版本等能力。经常不同项目需要依赖不同版本的node&#xff0c;此时nvm就能有效的解决node版本切换的问题。 二、nvm下载安装配置 &#xff08;1&#xff09;安装包地址 https://github.com/coreybutl…

Net强大混淆和代码保护 LogicNP Crypto Obfuscator

.Net 的强大混淆和代码保护确实有效&#xff01; .Net 汇编代码保护和混淆 自动异常报告 优化和性能改进 更小和简化的部署 您希望您的混淆器... 使用高级混淆技术确保对您的代码和知识产权提供最佳保护。使用智能规则和自动排除 避免常见混淆问题。 拥有简单的用户…

P2824 [HEOI2016/TJOI2016] 排序

题目 思路 直接模拟排序肯定会TLE&#xff0c;所以我们想一种离线的方法&#xff1a;01排序 利用二分答案check一下d&#xff0c;设序列中大于等于d的数为1&#xff0c;小于d的数为0 完成后再进行排序&#xff1a;这样升序排列就是将0放前面1放后面&#xff0c;降序排列则相反…

Linux下C/C++的gdb工具与Python的pdb工具常见用法之对比

1、gdb和pdb分别是什么&#xff1f; 1.1、gdb GDB&#xff08;GNU Debugger&#xff09;是一个功能强大的命令行调试工具&#xff0c;由GNU项目开发&#xff0c;用于调试C、C等编程语言的程序。它在多个操作系统中都可以使用&#xff0c;包括Linux、MacOS和Windows&#xff0…

C#与C/C++交互(1)——需要了解的基础知识

【前言】 C#中用于实现调用C/C的方案是P/Invoke&#xff08;Platform Invoke&#xff09;&#xff0c;让托管代码可以调用库中的函数。类似的功能&#xff0c;JAVA中叫JNI&#xff0c;Python中叫Ctypes。 常见的代码用法如下&#xff1a; [DllImport("Test.dll", E…

关于游戏的笔记

关于搭建秦时明月2一键端&#xff0c;并且开启秘境神秘商人东海寻仙幻化 1.该游戏下主要的目录 gm端 服务框架 服务端 2.修改对应的文件 C:\qs\Q2Server\server\conf_common\ManagerAddress.xmlC:\qs\Q2Server\server\conf_manager\GateServer.xml修改ip 3.启动gm startup…

SpringCloud(32):Nacos配置管理应用于分布式系统

1 从单体架构到微服务 1.1 单体架构 Web应用程序发展的早期&#xff0c;大部分web工程师将所有的功能模块打包到一起并放在一个web容器中运行&#xff0c;所有功能 模块使用同一个数据库&#xff0c;同时&#xff0c;它还提供API或者UI访问的web模块等。 尽管也是模块化逻辑…