需求:

  1. 文件大小验证
  2. 文件类型验证
  3. 额外参数传输
<template><el-upload class="upload-demo" action :limit="1" :file-list="formFileList" :http-request="handleUploadForm" :on-exceed="formHandleExceed" :on-remove="formHandleRemove":before-upload="beforeUploadForm" accept=".csv,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"><el-button type="primary">上传文件</el-button><span slot="tip" class="el-upload__tip" style="margin: 0 10px;">只能上传xlsx/xls/csv文件,且不超过{{formMaxSize}}M</span></el-upload>
</template>
<script>
export default {data () {return {formMaxSize: 10, // 上传文件大小formFileList: [], // 显示上传文件uploadFormFileList: [] // 确定上传文件}},methods: {// 开始上传前验证beforeUploadForm (file) {// 验证文件大小if (file.size / 1024 / 1024 > this.formMaxSize) {this.$message({message: `上传文件大小不能超过${this.formMaxSize}M!`,type: 'warning'})return false}// 中文乱码处理if (file.raw) {let reader = new FileReader() // 读取文件内容reader.readAsText(file.raw, 'gb2312') // 防止中文乱码问题,不加reader.onload方法都不会触发reader.onload = function (e) {this.contentHtml = e.target.result // txt文本内容,接下来就可以对其进行校验处理了}}// 验证文件类型var testmsg = file.name.substring(file.name.lastIndexOf('.') + 1)const extension = testmsg === 'xlsx' || testmsg === 'xls' || testmsg === 'csv'if (!extension) {this.$message({message: '上传文件只能是xlsx/xls/csv格式!',type: 'warning'})}return extension},// 移除上传列表中文件formHandleRemove (file, formFileList) {let thiz = thisfor (let i = 0; i < thiz.uploadFormFileList.length; i++) {if (thiz.uploadFormFileList[i].pname === file.name) {thiz.uploadFormFileList.splice(i, 1)break}}},// 允许上传文件个数验证formHandleExceed (files, formFileList) {this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + formFileList.length} 个文件`)},// 上传文件handleUploadForm (param) {let thiz = thislet formData = new FormData()formData.append('uid', '上传文件编号') // 额外参数formData.append('files', param.file)let loading = thiz.$loading({lock: true,text: '上传中,请稍候...',spinner: 'el-icon-loading',background: 'rgba(0, 0, 0, 0.7)'})thiz.$axios.post('http://localhost:8080/upload/file', formData).then(({data}) => {if (data.statusCode === 233) {thiz.$message('上传文件成功,' + data.message)thiz.formFileList = []thiz.uploadFormFileList = []} else {thiz.formFileList = []thiz.uploadFormFileList = []thiz.$message('上传文件失败,' + data.message)}loading.close()})}}
}
</script>
<style lang="scss" scoped>
</style>

总结:

  • 关于el-upload中各属性的配置,可以看element_ui官网
  • 后端接受上传文件和额外参数:
 @RequestParam(value = "uid") String uid, @RequestParam(value = "files") MultipartFile[] files

vue+element_ui上传文件,并传递额外参数相关推荐

  1. ElementUI中el-upload怎样上传文件并且传递额外参数给Springboot后台进行接收

    场景 需要将Excel中的数据导入到数据库中,就会用到文件上传的功能. 这里使用ElementUI的el-upload控件实现文件上传. 注: 博客: https://blog.csdn.net/ba ...

  2. [原创]使用ajaxFileUpload.js上传文件时附带额外参数。

    最近公司的一个项目涉及到导入Excel的功能,于是就想到用ajaxFileUpload来实现上传文件,因为用过很多次了,网上也有很多文章介绍.使用方法不表.但是在附带参数这个环节卡住了:文件可以上传到 ...

  3. Upload_上传_并传递额外参数

    页面代码 <!--导入--><!--:data绑定传到后台的参数--><el-uploadstyle="display: inline-flex":s ...

  4. vue实时上传文件进度条

    vue实时上传文件进度条 //上传文件组件 <el-uploadaction:show-file-list="false":before-upload="uploa ...

  5. C# 使用HttpClient上传文件并附带其他参数的步骤

    HttpClient和MultipartFormDataContent(传送门)最低适用于.NET Framework 4.5版本 发送端代码 using (HttpClient client = n ...

  6. elementUI中el-upload上传文件时附带额外参数传递

    公司vue项目中,文件上传这块先前一直使用的单独接口,即只是单纯的上传文件接口,上传完了拿到文件的id之后再调用文件关联绑定关系的接口,上传的代码如下即可:需要上传的url地址 以及hearders中 ...

  7. vue前端上传文件夹的插件_基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件...

    1. 前言 之前公司要在管理系统中做一个全局上传插件,即切换各个页面的时候,上传界面还在并且上传不会受到影响,这在vue这种spa框架面前并不是什么难题.然而后端大佬说我们要实现分片上传.秒传以及断点 ...

  8. vue前端上传文件给后端的两种方式

    <a-uploadv-model:file-list="fileList":show-upload-list="false":multiple=" ...

  9. C# HttpClient上传文件并附带其它参数

    1.Fiddler抓包参数详情 Content-Type: multipart/form-data; boundary="8d9ade1fd906a6a" Content-Leng ...

  10. FormData上传文件同时附带其他参数

    前端js代码: function fileSubmit() {var formData = new FormData();formData.append("file",$(&quo ...

最新文章

  1. 支撑Spring的基础技术:泛型,反射,动态代理,cglib等
  2. mysql数据库名虚拟机_linux虚拟机上装mysql数据库
  3. 浅析jQuery原理并仿写封装一个自己的库
  4. 精通python爬虫框架-精通Python爬虫框架Scrapy PDF 中文清晰版
  5. ASP导出数据到excel
  6. Swift调用第三方OC项目
  7. java音乐登陆界面_第四篇——Spring音乐登录界面设计及实现(C#)
  8. poj 2486 树形dp
  9. *【POJ - 3659】Cell Phone Network (树形dp,最小支配集)
  10. 猜数字(HDU-2178)
  11. 序列化 与 反序列化 字符串 实例
  12. ASP.NET程序中常用的三十三种代码一
  13. selenium爬取豆瓣电影和电视剧
  14. 用计算机算标准曲线,标准曲线计算软件
  15. 计算机处理器怎么看 64,怎么查看电脑处理器是32还是64位
  16. 简体繁体转换JS(JavaScript)脚本
  17. 算法提高 解二元一次方程组
  18. 信息安全密码学实验三:密码学数学基础实验
  19. 利用DICOM文件实现2D与3D体素坐标之间的转换
  20. 白巧脆皮奶香雪糕,一次成功

热门文章

  1. 5号字对应的数字字号_5号字体比较于多少pt
  2. ols残差_多元回归方程的OLS残差
  3. 九大背包问题专题--背包问题求方案数
  4. 索尼Z2(L50t)刷CM12教程
  5. 经典机器学习模型:朴素贝叶斯分类
  6. MySQL:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA
  7. Hudi-通过Hive查询hudi表数据
  8. android获取版本信息、屏幕信息和设备编号
  9. MySQL5.5安装及其配置
  10. excel表格公式出现#REF是什么意思