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 相关文章推荐
基于JQuery实现相同内容合并单元格的代码
Jan 12 Javascript
关于jquery性能最佳实践的讨论,与求教
Mar 30 Javascript
js里怎么取select标签里的值并修改
Dec 10 Javascript
JS日期和时间选择控件升级版(自写)
Aug 02 Javascript
禁止IE用右键的JS代码
Dec 30 Javascript
javascript遇到html5的一些表单属性
Jul 05 Javascript
jQuery EasyUI 入门必看
Jun 03 Javascript
JavaScript实现创建自定义对象的常用方式总结
Jul 09 Javascript
利用Node.js批量抓取高清妹子图片实例教程
Aug 02 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
Aug 16 Javascript
解决layui table表单提示数据接口请求异常的问题
Sep 24 Javascript
node.js express框架实现文件上传与下载功能实例详解
Oct 15 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中const与define的应用区别
2013/06/18 PHP
php生成txt文件实例代码介绍
2016/04/28 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
jQuery toggle()设置CSS样式
2009/11/05 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
2010/10/20 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
web前端开发也需要日志
2010/12/09 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
使用javascript过滤html的字符串(注释标记法)
2013/07/08 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
2014/01/26 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
jQuery Mobile动态刷新页面样式的实现方法
2016/05/28 Javascript
Angular和百度地图的结合实例代码
2016/10/19 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
详解Python编程中包的概念与管理
2015/10/16 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
Windows下python3.6.4安装教程
2018/07/31 Python
Python银行系统实战源码
2019/10/25 Python
京东国际站:JOYBUY
2017/11/23 全球购物
FC-Moto丹麦:欧洲最大的摩托车服装和头盔商店之一
2019/08/20 全球购物
三年级语文教学反思
2014/02/01 职场文书
《赵州桥》教学反思
2014/02/17 职场文书
525心理活动总结
2014/07/04 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
2016七夕情人节感言
2015/12/09 职场文书
老舍《猫》教学反思
2016/02/17 职场文书
Mysql查询时间区间日期列表,不会由于数据表数据影响
2022/04/19 MySQL