VUE上传表格文件发送后端,后端解析以及上传文件,前端进行解析的实现方法
首先来说前端上传表格,然后利用纯前端技术进行解析表格的办法
详细步骤----请点击这里
接下来来说上传发送给后端的代码实现
html
<input ref="myInput" type="file" class="my_input" :multiple="myMultiple" style="display:none;" @change="importExcel">
<el-button type="primary" style="width:150px;" :disabled="item.updisabled" size="small" @click="myOpen()">上傳</el-button>
script
import myComValid from '../co-assets/com-valid.js'
import myCom from '../co-assets/com-fun' // 这里只有个弹框函数,就不放了
import Request from '../co-assets/request.js' // 这个是请求函数,和其他的AXIOS一样,只不过稍微封装了一下下,可以改为原来的axios请求方式
// 数据
myMultiple: true
fun
// 方法
myOpen() {
setTimeout(() => {
this.$refs.myInput.click()
}, 500)
}
/**
* 導入
*/
async importExcel(e) {
// console.log('上传了')
this.formData[this.currentFlag]['fileName'] = '正在上传,请稍后...'
this.loading = true
this.loadingTest = '正在上传文件,请稍后...'
const files = e.target.files
if (files.length <= 0) {
return false
} else if (files.length > 2) {
myCom.alert('上传数量有误(正确数量为1-2个),请重新选择文件!')
this.loading = false
return false
} else {
Object.values(files).every(_ => {
// 循环检查所有文件是否都是xlsx
if (!/\.(xlsx)$/.test(_.name.toLowerCase()) || myComValid.validNoTest(_.name)) {
myCom.alert('請重新上傳,文件必须为xlsx格式且文件名不可包含汉字!')
this.loading = false
return false
}
})
}
const url = myUrl +'/uploadfile'
const myformdataFile = new FormData()
if (e.target.files.length > 1) {
myformdataFile.append('file', e.target.files[0])
myformdataFile.append('file', e.target.files[1])
} else {
myformdataFile.append('file', e.target.files[0])
}
if (this.currentFlag === 'header') {
myformdataFile.append('files', this.filename)
}
myformdataFile.append('actiontime', this.topForm.version.value)
try {
const res = await Request.httpRes(
'post',
url,
myformdataFile,
false,
'Success!',
'上傳文件失敗,請重新上傳!'
)
if (res && res.status === 'Success') {
res.msg && this.$message.success(res.msg)
} else {
res.msg && this.$message.error(res.msg)
this.setErrorUpload(res)
}
} catch (err) {
this.$message.error('執行操作失敗,請重試!')
this.setErrorUpload()
}
var input = this.$refs.myInput
input.value = ''
},
// 導入
下面是正则验证函数
com-valid.js
export default {
/**
* 验证IP
* @param {String} ip
*/
validIp(ip) {
const reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
return reg.test(ip)
},
/**
* 检测是否包含文字
* @param {String} str
*/
validNoTest(str) {
const reg = /[\u4e00-\u9fa5]+/g
return reg.test(str)
},
/**
* 检测是否包含文字或者空格
* @param {String} str
*/
validNoTest1(str) {
const reg = /[\u4e00-\u9fa5\s]+/g
return reg.test(str)
}
}
VUE上传表格文件发送后端,后端解析以及上传文件,前端进行解析的实现方法的更多相关文章
- vue + element ui 表格自定义表头,提供线上demo
前言:工作中用到 vue+element ui 的前端框架,需要使用自定义表头,需要使用 re.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9710826.h ...
- 使用elementUI的时候,使用Upload 上传的时候,使用 list-type 属性来设置文件列表的样式,before-upload方法失效
最近在做项目的时候,使用elementUI的时候,使用Upload 上传的时候,before-upload方法失效. 情况下:使用 list-type 属性来设置文件列表的样式. 最终的优化之后:(演 ...
- DEX文件解析---2、Dex文件checksum(校验和)解析
一.checksum介绍 checksum(校验和)是DEX位于文件头部的一个信息,用来判断DEX文件是否损坏或者被篡改,它位于头部的0x08偏移地址处,占用4个字节,采用小端序存储. ...
- DEX文件解析--7、类及其类数据解析(完结篇)
一.前言 前置技能链接: DEX文件解析---1.dex文件头解析 DEX文件解析---2.Dex文件checksum(校验和)解析 DEX文件解析--3.d ...
- DEX文件解析--4、dex类的类型解析
一.前言 前几篇系列文章链接: DEX文件解析---1.dex文件头解析 DEX文件解析---2.Dex文件checksum(校验和)解析 DEX文件解析--3.dex文件 ...
- DEX文件解析--6、dex文件字段和方法定义解析
一.前言 前几篇文章链接: DEX文件解析---1.dex文件头解析 DEX文件解析---2.Dex文件checksum(校验和)解析 DEX文件解析--3. ...
- Yii框架和Vue的完美结合完成前后端分离项目
背景说明 本文假设你对Yii和Vue都比较熟悉,至少都在项目里用过,另外笔者新人,以后不定时放一些干货,欢迎程序媛关注 Yii是一个PHP全端框架,典型的mvc的项目结构,后端接口都是一个控制器里放了 ...
- SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(五): 数据表设计、使用 jwt、redis、sms 工具类完善注册登录逻辑
(1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y-h/p ...
- Vue学习笔记-Django REST framework3后端接口API学习
一 使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7 (Windows x86- ...
- 基于 jq 实现拖拽上传 APK 文件,js解析 APK 信息
技术栈 jquery 文件上传:jquery.fileupload,github 文档 apk 文件解析:app-info-parser,github 文档 参考:前端解析ipa.apk安装包信息 - ...
随机推荐
- 初识Rasp——Openrasp代码分析
初识Rasp--Openrasp代码分析 @author:Drag0nf1y 本文首发于奇安信安全社区,现转载到个人博客. 原文链接: https://forum.butian.net/share/1 ...
- 驱动开发:内核层InlineHook挂钩函数
在上一章<驱动开发:内核LDE64引擎计算汇编长度>中,LyShark教大家如何通过LDE64引擎实现计算反汇编指令长度,本章将在此基础之上实现内联函数挂钩,内核中的InlineHook函 ...
- Nginx四层负载均衡1
1.Nginx负载均衡Redis 服务器 IP地址 作用 系统版本 Nginx代理服务器 10.0.0.38 负载均衡服务器 Rocky8.6 Redis服务器1 10.0.0.18 Redis服务器 ...
- 【实操日记】使用 PyQt5 设计下载远程服务器日志文件程序
最近通过 PyQt5 设计了一个下载服务器指定日期日志文件的程序,里面有些有意思的技术点,现在做一些分享. PyQt5 是一套 Python 绑定 Digia Qt5 应用的框架,是最强大的 GUI ...
- 【翻译】Spring Security抛弃了WebSecurityConfigurerAdapter
原文链接:Spring Security without the WebSecurityConfigurerAdapter 作者:ELEFTHERIA STEIN-KOUSATHANA 发表日期:20 ...
- 【云原生 · Kubernetes】部署博客系统
[云原生 · Kubernetes]Kubernetes运维 接着上次的内容,后续来了! (1)配置NFS服务 master节点安装NFS与RPC服务: # yum install -y nfs-ut ...
- 使用lamdba查询datatable中的一个值或者单元格
首先创建一个datatable,结构简单的分为两列 Datatable dt=new Datatable(); dt.Columns("code"); dt.Columns(&qu ...
- Docker 工作原理分析
docker 容器原理分析 docker 的工作方式 Namespace 容器对比虚拟机 Cgroups 容器看到的文件 Mount namespace chroot rootfs Volume(数据 ...
- day33 过滤器filter & 监听器listener & 利用反射创建BaseServlet实现调用自定义业务方法
Filter过滤器 Fileter可以实现: 1)客户端的请求访问servlet之前拦截这些请求,对用户请求进行预处理 2)对HttpServletResponse进行后处理: 注意 多个Filter ...
- 【消息队列面试】6-10:Rebalance机制、副本同步机制、架构设计、zk的作用、kafka的高性能
六.简述kafka的Rebalance[偏向实战,有难度] 1.背景 kafka日志:在消息量大.高并发时,经常会出现rebalance中 rebalance会影响kafka性能,会阻塞partiti ...