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 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(5)
Dec 23 Javascript
浅析Prototype的模板类 Template
Dec 07 Javascript
javascript中拼接HTML字符串的最快、最好的方法
Jun 07 Javascript
js操作模态窗口及父子窗口间相互传值示例
Jun 09 Javascript
jQuery实现跨域
Feb 03 Javascript
使用jQuery监听DOM元素大小变化
Feb 24 Javascript
JS使用eval()动态创建变量的方法
Jun 03 Javascript
javaScript事件机制兼容【详细整理】
Jul 23 Javascript
JavaScript获取当前时间向前推三个月的方法示例
Feb 04 Javascript
详解vue事件对象、冒泡、阻止默认行为
Mar 20 Javascript
Node.js之删除文件夹(含递归删除)代码实例
Sep 09 Javascript
JS数组及对象遍历方法代码汇总
Jun 16 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 CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
php+mysqli数据库连接的两种方式
2015/01/28 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
js下弹出窗口的变通
2007/04/18 Javascript
js替换字符串的所有示例代码
2013/07/23 Javascript
javascript实现动态标签云
2015/10/16 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
AngulerJS学习之按需动态加载文件
2017/02/13 Javascript
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
nodejs对express中next函数的一些理解
2017/09/08 NodeJs
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
微信小程序实现验证码获取倒计时效果
2018/02/08 Javascript
vue下history模式刷新后404错误解决方法
2018/08/18 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
2020/01/04 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
2020/11/16 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
用Python的SimPy库简化复杂的编程模型的介绍
2015/04/13 Python
python实现员工管理系统
2018/01/11 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
Python空间数据处理之GDAL读写遥感图像
2019/08/01 Python
在OpenCV里使用Camshift算法的实现
2019/11/22 Python
python 数据类型强制转换的总结
2021/01/25 Python
办公室内勤岗位职责范本
2013/12/09 职场文书
运动会稿件100字
2014/02/21 职场文书
社区食品安全实施方案
2014/03/28 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
党员干部对十八届四中全会的期盼
2014/10/17 职场文书
乡镇领导班子四风整顿行动工作汇报
2014/10/25 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
《自己的花是让别人看的》教学反思
2016/02/19 职场文书
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
2021/03/31 Servers