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函数的执行 onload or ready
Dec 12 Javascript
javascript事件函数中获得事件源的两种不错方法
Mar 17 Javascript
浅谈javascript的分号的使用
May 12 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
Jul 08 Javascript
不间断循环滚动效果的实例代码(必看篇)
Oct 08 Javascript
快速掌握jQuery插件WebUploader文件上传
Nov 07 Javascript
使用JavaScript根据图片获取条形码的方法
Jul 04 Javascript
Node接收电子邮件的实例代码
Jul 21 Javascript
解决一个微信号同时支持多个环境网页授权问题
Aug 07 Javascript
vue-dplayer 视频播放器实例代码
Nov 08 Javascript
微信小程序swiper使用网络图片不显示问题解决
Dec 13 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
Oct 13 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 7 vs HHVM 多角度比较
2016/02/14 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
用C/C++来实现 Node.js 的模块(一)
2014/09/24 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
2016/09/17 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
详细分析单线程JS执行问题
2017/11/22 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
vue实现的组件兄弟间通信功能示例
2018/12/04 Javascript
js实现抽奖的两种方法
2020/03/19 Javascript
vue实现拖拽进度条
2021/03/01 Vue.js
详解Python中的循环语句的用法
2015/04/09 Python
带你了解python装饰器
2017/06/15 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
h5封装下拉刷新
2020/08/25 HTML / CSS
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
联想韩国官网:Lenovo Korea
2018/05/10 全球购物
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
如何用PHP实现邮件发送
2012/12/26 面试题
工程项目经理岗位职责
2013/12/15 职场文书
聚美优品广告词改编
2014/03/14 职场文书
幼儿园中班开学寄语
2014/04/03 职场文书
鼓舞士气的口号
2014/06/16 职场文书
大学学生个人总结
2015/02/15 职场文书
八一建军节主持词
2015/07/01 职场文书
党风廉政建设心得体会(2016最新版)
2016/01/22 职场文书
在HTML5 localStorage中存储对象的示例代码
2021/04/21 Javascript
Python面向对象编程之类的概念
2021/11/01 Python