首页 > 其他分享 >js原生文件上传

js原生文件上传

时间:2022-10-05 22:01:52浏览次数:51  
标签:原生 3px suffix js height rawFile font 上传 files


.upload-btn {
width: 96px;
height: 28px;
font-size: 12px;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #333333;
line-height: 16px;
margin-right: 12px;
cursor: pointer;
position: relative;
display: block;
overflow: hidden;
.cover{
background: #fff;
position: absolute;
width: 96px;
height: 28px;
display: flex;
align-items: center;
justify-content: center;
top: 0px;
left: 0;
border: 1px solid #BDBDBD;
border-radius: 3px 3px 3px 3px;
img {
width: 16px;
height: 16px;
margin-right: 4px;
}
svg{
fill: #999999;
margin-right: 4px;
}
&:hover{
color: #fff;
background-color: rgba(47, 127, 224, 1);
font-size: 12px;
svg{
fill: #fff;
}
}
}



}
<div class="upload-btn">
<input type="file" class="file" id="file"/>
<div class="cover">
<svg width="16" height="16" viewBox="0 0 16 16" fill="#999" xmlns="http://www.w3.org/2000/svg">
<path d="M14 7.5C14.2761 7.5 14.5 7.72386 14.5 8V14C14.5 14.2761 14.2761 14.5 14 14.5H2C1.72386 14.5 1.5 14.2761 1.5 14V8.00277C1.5 7.72662 1.72386 7.50277 2 7.50277C2.27614 7.50277 2.5 7.72662 2.5 8.00277V13.5H13.5V8C13.5 7.72386 13.7239 7.5 14 7.5Z"/>
<path d="M7.64645 1.64645C7.84171 1.45118 8.15829 1.45118 8.35355 1.64645L11.3536 4.64645C11.5488 4.84171 11.5488 5.15829 11.3536 5.35355C11.1583 5.54882 10.8417 5.54882 10.6464 5.35355L8 2.70711L5.35355 5.35355C5.15829 5.54882 4.84171 5.54882 4.64645 5.35355C4.45119 5.15829 4.45119 4.84171 4.64645 4.64645L7.64645 1.64645Z"/>
<path d="M7.99723 1.5C8.27338 1.5 8.49723 1.72386 8.49723 2V10.6667C8.49723 10.9428 8.27338 11.1667 7.99723 11.1667C7.72109 11.1667 7.49723 10.9428 7.49723 10.6667V2C7.49723 1.72386 7.72109 1.5 7.99723 1.5Z"/>
</svg>
点击上传
</div>
</div>


function fileHandler () {
// 1.获取标签
let file = document.getElementById('file');

// 2.监听图片选择的变化
file.onchange = function (e) {
const files = e.target.files
const rawFile = files[0] // only use files[0]
if (!rawFile) return
const isSize = rawFile.size / 1024 / 1024 < 25

// 3.判断文件大小
if (!isSize) {
//大于25m
console.log('大小超了')
return false;
}
// 4. 截取文件路径的名称
let suffix = rawFile.type

// 5. 判断文件类型
if (suffix.indexOf('zip') > -1 || suffix.indexOf('rar') > -1 || suffix.indexOf('7z') > -1) {
// to do 文件正确处理上传逻辑
console.log('对啦')
} else {
//文件类型不对
console.log('文件类型不对')
return false;
}
}
}
fileHandler();

标签:原生,3px,suffix,js,height,rawFile,font,上传,files
From: https://www.cnblogs.com/chenrong/p/16756525.html

相关文章

  • 【c++基础】从json文件提取数据
    前言标注数据导出文件是json格式的,也就是python的dict格式,需要读取标注结果,可以使用c++或者python,本文使用c++实现的。JsonCpp简介JsonCpp是一种轻量级的数据交换格式,是个跨......
  • 详解js中的对象的深浅拷贝
    前言本文是整理的浅拷贝和深拷贝中涉及的知识点,在工作中是非常重要的,在面试中也是必考的,希望对小伙伴们有所帮助!为什么会产生深浅拷贝?首先我们要知道一个流程1,对象属......
  • 使用mock.js来模拟后台数据的方案
    如何在项目中引入mockjs,从而实现脱离后端数据,前端做假数据来独立开发业务逻辑。一.安装依赖npmimockjs--save-dev二.使用mock按照业务模块建立一个文件来写模拟......
  • java如何将字符串转换为json格式字符串呢?
    转自:http://www.java265.com/JavaJingYan/202206/16540828373607.htmlJSON简介:   JSON(JavaScriptObjectNotation,JS对象简谱)是一种轻量级的数据交换格式。它基......
  • js数据操作
    1.数据绑定WXML中部分数据来自JS中的data1.1js中设置数据data:{myName:"123",title:"weixin",content:"123000",arr:["str","lwx"],//数组//对象o......
  • JS 宏任务和微任务
    先来看一张图,整的明明白白简单地说:宏任务:针对浏览器/node所发起的任务微任务:JS函数回调(异步函数)执行顺序:微任务>宏任务再看一段代码代码解读:JS代码是单线程,从......
  • docker 上传镜像 记
    第一步,我在https://hub.docker.com/repositories创建了自己的仓库 第二步,复制dockerpush yurro(你的docker用户名)/react-web:tagname命令上传失败,错误Animagedoe......
  • Spring Boot 快速图片上传封装
    importcom.alibaba.fastjson.JSONObject;importcom.retailo2o.server.domain.base.ResponseData;importio.swagger.annotations.Api;importorg.slf4j.Logger;impo......
  • Three.js day01
    `<head><metacharset="UTF-8"><title>第一个three.js文件_WebGL三维场景</title><style>body{margin:0;overflow:hidden;/*隐......
  • umi项目集成高德地图的js-sdk ——亲测有效
    1.开发前准备注册账号信息创建新应用   2.集成到项目引入到项目中 相关代码util代码封装//@ts-ignoreconstAMap=window.AMap;/***其......