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 相关文章推荐
dwr spring的集成实现代码
Mar 22 Javascript
JQuery 实现的页面滚动时浮动窗口控件
Jul 10 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
Nov 28 Javascript
JS 获取浏览器和屏幕宽高等信息代码
Mar 31 Javascript
JavaScript实现的类字典插入或更新方法实例
Jul 10 Javascript
浅析jquery unbind()方法移除元素绑定的事件
May 24 Javascript
js智能获取浏览器版本UA信息的方法
Aug 08 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
Aug 24 Javascript
js实现简单的碰壁反弹效果
Aug 30 Javascript
原生js实现中奖信息无间隙滚动效果
Jan 18 Javascript
关于vue表单提交防双/多击的例子
Oct 31 Javascript
Nuxt.js nuxt-link与router-link的区别说明
Nov 06 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
php中支持多种编码的中文字符串截取函数!
2007/03/20 PHP
PHP缓存机制Output Control详解
2014/07/14 PHP
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
javascript中的array数组使用技巧
2010/01/31 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
2013/12/14 Javascript
Javascript 实现图片无缝滚动
2014/12/19 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
jquery.cookie实现的客户端购物车操作实例
2015/12/24 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
微信小程序使用request网络请求操作实例
2017/12/15 Javascript
javaScript 实现重复输出给定的字符串的常用方法小结
2020/02/20 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
使用jquery实现轮播图效果
2021/01/02 jQuery
Python函数嵌套实例
2014/09/23 Python
探索Python3.4中新引入的asyncio模块
2015/04/08 Python
python处理大数字的方法
2015/05/27 Python
Django框架中的对象列表视图使用示例
2015/07/21 Python
Python反射和内置方法重写操作详解
2018/08/27 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
Python制作简单的剪刀石头布游戏
2020/12/10 Python
pycharm如何设置官方中文(如何汉化)
2020/12/29 Python
Python爬虫定时计划任务的几种常见方法(推荐)
2021/01/15 Python
纽约和芝加哥当天送花:Ode à la Rose
2019/07/05 全球购物
会计系毕业个人自荐信格式
2013/09/23 职场文书
英文自荐信常用句子
2014/03/26 职场文书
影子教师研修方案
2014/06/14 职场文书
科学发展观标语
2014/10/08 职场文书
python数字转对应中文的方法总结
2021/08/02 Python