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 键盘事件的几个基本方法
Oct 30 Javascript
jquery 图片Silhouette Fadeins渐显效果
Feb 07 Javascript
jquery 插件学习(二)
Aug 06 Javascript
js关闭父窗口时关闭子窗口
Apr 01 Javascript
Jquery实现弹出层分享微博插件具备动画效果
Apr 03 Javascript
JS动态加载当前时间的方法
Feb 09 Javascript
Vue.js组件tabs实现选项卡切换效果
Dec 01 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
Apr 20 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
Dec 27 Javascript
详解ES6 Symbol 的用途
Oct 14 Javascript
用Node写一条配置环境的指令
Nov 14 Javascript
JS动态图片的实现方法完整示例
Jan 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验证码生成类分享
2014/08/21 PHP
PHP+Apache+Mysql环境搭建教程
2016/08/01 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
document.compatMode介绍
2009/05/21 Javascript
Extjs学习过程中新手容易碰到的低级错误积累
2010/02/11 Javascript
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
url参数中有+、空格、=、%、&amp;、#等特殊符号的问题解决
2013/05/15 Javascript
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
2014/02/07 Javascript
jQuery中slideUp()方法用法分析
2014/12/24 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
分享一个插件实现水珠自动下落效果
2016/06/01 Javascript
Web程序员必备的7个JavaScript函数
2016/06/14 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
HTML的select控件美化
2017/03/27 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
Python实现模拟登录及表单提交的方法
2015/07/25 Python
Python set常用操作函数集锦
2017/11/15 Python
详解python 模拟豆瓣登录(豆瓣6.0)
2019/04/18 Python
PyTorch预训练的实现
2019/09/18 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
Python3将ipa包中的文件按大小排序
2020/04/17 Python
Python面向对象实现方法总结
2020/08/12 Python
python collections模块的使用
2020/10/16 Python
HTML5 在canvas中绘制文本附效果图
2014/06/23 HTML / CSS
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
C语言变量的命名规则都有哪些
2013/12/27 面试题
通信工程毕业生自荐信
2013/11/01 职场文书
毕业生自我鉴定
2013/11/05 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
三严三实学习心得体会
2014/10/13 职场文书
物业保洁员管理制度
2015/08/05 职场文书