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高级拖动技术 setCapture,releaseCapture
Jul 31 Javascript
jquery的父子兄弟节点查找示例代码
Mar 03 Javascript
JS判断客户端是手机还是PC的2个代码
Apr 12 Javascript
js日期范围初始化得到前一个月日期的方法
May 05 Javascript
jquery采用oop模式class类的使用示例
Jan 22 Javascript
JS获取当前脚本文件的绝对路径
Mar 02 Javascript
JavaScript中的this使用详解
Jul 27 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
Jan 05 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
Jan 06 Javascript
vue.js使用watch监听路由变化的方法
Jul 08 Javascript
js实现上下左右键盘控制div移动
Jan 16 Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
May 18 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+DBM的同学录程序(4)
2006/10/09 PHP
php实现MD5加密16位(不要默认的32位)
2013/08/12 PHP
PHP合并静态文件详解
2014/11/14 PHP
PHP 使用memcached简单示例分享
2015/03/05 PHP
PHP异常类及异常处理操作实例详解
2018/12/19 PHP
jquery下json数组的操作实现代码
2010/08/09 Javascript
JavaScript插入动态样式实现代码
2012/02/22 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
浅析javascript 定时器
2014/12/23 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
JQuery学习总结【二】
2016/12/01 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
React项目动态设置title标题的方法示例
2018/09/26 Javascript
微信小程序地图(map)组件点击(tap)获取经纬度的方法
2019/01/10 Javascript
微信小程序template模板与component组件的区别和使用详解
2019/05/22 Javascript
使用express来代理服务的方法
2019/06/21 Javascript
JS实现拖动模糊框特效
2020/08/25 Javascript
动态实现element ui的el-table某列数据不同样式的示例
2021/01/22 Javascript
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
python将回车作为输入内容的实例
2018/06/23 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
Python中的Numpy矩阵操作
2018/08/12 Python
python pygame实现2048游戏
2018/11/20 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
如何清空python的变量
2020/07/05 Python
使用Python操作MySQL的小技巧
2020/09/10 Python
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
如何用SQL语句进行模糊查找
2015/09/25 面试题
财务管理专业自荐信范文
2013/12/24 职场文书
小学生秋游活动方案
2014/02/23 职场文书
日语专业毕业生自荐书
2014/06/18 职场文书
求职自荐信怎么写
2015/03/04 职场文书
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫
Golang 对es的操作实例
2022/04/20 Golang