vue实现文件上传功能


Posted in Javascript onAugust 13, 2018

vue 文件上传,供大家参考,具体内容如下

首先 先说一下想要实现的效果

vue实现文件上传功能

就如截图所见,需要将企业和需要上传的文件提交到后台处理,那么接下来就说如何实现

vue 实现

vue 页面代码

<el-upload
 class="upload-demo"
 ref="upload"
 action="doUpload"
 :limit="1"
 :file-list="fileList"
 :before-upload="beforeUpload">
 <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
 <a href="./static/moban.xlsx" rel="external nofollow" download="模板"><el-button size="small" type="success">下载模板</el-button></a>
 <!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> -->
 <div slot="tip" class="el-upload__tip">只能上传excel文件,且不超过5MB</div>
 <div slot="tip" class="el-upload-list__item-name">{{fileName}}</div>
 </el-upload> 
 <span slot="footer" class="dialog-footer">
 <el-button @click="visible = false">取消</el-button>
 <el-button type="primary" @click="submitUpload()">确定</el-button>
 </span>

上传之前的大小校验

beforeUpload(file){
 debugger
 console.log(file,'文件');
 this.files = file;
 const extension = file.name.split('.')[1] === 'xls'
 const extension2 = file.name.split('.')[1] === 'xlsx'
 const isLt2M = file.size / 1024 / 1024 < 5
 if (!extension && !extension2) {
  this.$message.warning('上传模板只能是 xls、xlsx格式!')
  return
 }
 if (!isLt2M) {
  this.$message.warning('上传模板大小不能超过 5MB!')
  return
 }
 this.fileName = file.name;
 return false // 返回false不会自动上传
 },

手动上传确认提交

submitUpload() {
 debugger
 console.log('上传'+this.files.name)
 if(this.fileName == ""){
  this.$message.warning('请选择要上传的文件!')
  return false
 }
 let fileFormData = new FormData();
 fileFormData.append('file', this.files, this.fileName);//filename是键,file是值,就是要传的文件,test.zip是要传的文件名
 let requestConfig = {
  headers: {
  'Content-Type': 'multipart/form-data'
  },
 }
 this.$http.post(`/basedata/oesmembers/upload?companyId=`+this.company, fileFormData, requestConfig).then((res) => {
  debugger
  if (data && data.code === 0) {
  this.$message({
  message: '操作成功',
  type: 'success',
  duration: 1500,
  onClose: () => {
  this.visible = false
  this.$emit('refreshDataList')
  }
  })
  } else {
  this.$message.error(data.msg)
  }
 }) 
 }

后台

/**
 * 上传文件
 */
 @PostMapping("/upload")
 @RequiresPermissions("basedata:oesmembers:upload")
 public R upload(@RequestParam("file") MultipartFile file, @RequestParam("companyId") Integer companyId) {
 System.out.println(companyId);
 if (file.isEmpty()) {
  throw new RRException("上传文件不能为空");
 }
 //上传文件 相关逻辑

 return R.ok();
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ExtJS 简介 让你知道extjs是什么
Dec 29 Javascript
深入理解Javascript动态方法调用与参数修改的问题
Dec 10 Javascript
通过url查找a元素并点击
Apr 09 Javascript
从零学jquery之如何使用回调函数
May 16 Javascript
javascript实现省市区三级联动下拉框菜单
Nov 17 Javascript
pc加载更多功能和移动端下拉刷新加载数据
Nov 07 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
Nov 25 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
Jan 13 Javascript
jQuery操作之效果详解
May 19 jQuery
JS判断微信扫码的方法
Aug 07 Javascript
微信小程序日历组件使用方法详解
Dec 29 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
Oct 26 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
Aug 13 #Javascript
实例详解BootStrap的动态模态框及静态模态框
Aug 13 #Javascript
使用JavaScript实现node.js中的path.join方法
Aug 12 #Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
Aug 12 #Javascript
Vue实现左右菜单联动实现代码
Aug 12 #Javascript
Vue中的v-for循环key属性注意事项小结
Aug 12 #Javascript
vue实现商品加减计算总价的实例代码
Aug 12 #Javascript
You might like
DC的38部超级英雄动画电影
2020/03/03 欧美动漫
php数组函数序列之array_flip() 将数组键名与值对调
2011/11/07 PHP
PHP下使用CURL方式POST数据至API接口的代码
2013/02/14 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
2014/04/01 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
浅谈PHP中静态方法和非静态方法的相互调用
2016/10/04 PHP
让插入到 innerHTML 中的 script 跑起来的实现代码
2006/07/01 Javascript
JavaScript 参考教程
2006/12/29 Javascript
JavaScript 学习笔记(六)
2009/12/31 Javascript
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
JS弹出对话框返回值代码(asp.net后台)
2010/12/28 Javascript
Extjs实现进度条的两种便捷方式
2013/09/26 Javascript
js中各种类型的变量在if条件中是true还是false
2014/07/16 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
jquery和js实现对div的隐藏和显示方法
2014/09/26 Javascript
jquery获取及设置outerhtml的方法
2015/03/09 Javascript
JavaScript中push(),join() 函数 实例详解
2016/09/06 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
JS ES6多行字符串与连接字符串的表示方法
2017/04/26 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
2017/09/11 Javascript
基于js中document.cookie全面解析
2017/09/14 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
Python如何生成树形图案
2018/01/03 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
2020/04/08 Python
基于python实现上传文件到OSS代码实例
2020/05/09 Python
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
波兰在线杂货店:Polski Koszyk
2019/11/02 全球购物
linux面试题参考答案(6)
2014/08/29 面试题
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
学生会干部自我鉴定2014
2014/09/18 职场文书
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript