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 相关文章推荐
js bind 函数 使用闭包保存执行上下文
Dec 26 Javascript
js模拟点击以提交表单为例兼容主流浏览器
Nov 29 Javascript
JavaScript中的数组特性介绍
Dec 30 Javascript
使用Sticker.js实现贴纸效果
Jan 28 Javascript
Eclipse配置Javascript开发环境图文教程
Jan 29 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
Mar 09 Javascript
js实现的早期滑动门菜单效果代码
Aug 27 Javascript
TinyMCE汉化及本地上传图片功能实例详解
May 31 Javascript
JS实现动态给标签控件添加事件的方法示例
May 13 Javascript
underscore之function_动力节点Java学院整理
Jul 11 Javascript
基于 Bootstrap Datetimepicker 联动
Aug 03 Javascript
ES6对象操作实例详解
May 23 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
Google Voice 短信发送接口PHP开源版(2010.5更新)
2010/07/22 PHP
PHP写UltraEdit插件脚本实现方法
2011/12/26 PHP
ThinkPHP自动填充实现无限级分类的方法
2014/08/22 PHP
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
js给页面加style无效果的解决方法
2014/01/20 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
2015/08/17 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车
2015/11/30 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
jQuery编写网页版2048小游戏
2017/01/06 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
使用webpack搭建vue环境的教程详解
2019/12/31 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
Python实现字典的遍历与排序功能示例
2017/12/23 Python
pytorch forward两个参数实例
2020/01/17 Python
简单的Python人脸识别系统
2020/07/14 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
2020/11/11 Python
Python爬虫简单运用爬取代理IP的实现
2020/12/01 Python
expedia比利时:预订航班+酒店并省钱
2018/07/13 全球购物
一份Java笔试题
2012/02/21 面试题
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
校园招聘策划书
2014/01/09 职场文书
公司总经理工作职责管理办法
2014/02/28 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python
Python 批量下载阴阳师网站壁纸
2021/05/19 Python
DIV CSS实现网页背景半透明效果
2021/12/06 HTML / CSS