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中实现命名空间
Nov 23 Javascript
asm.js使用示例代码
Nov 28 Javascript
分享一则JavaScript滚动条插件源码
Mar 03 Javascript
javascript日期操作详解(脚本之家整理)
Sep 05 Javascript
js实现的页面矩阵图形变换特效
Jan 26 Javascript
js发送短信倒计时的简单实现方法
Sep 08 Javascript
jQuery可见性过滤选择器用法示例
Sep 09 Javascript
vue中用动态组件实现选项卡切换效果
Mar 25 Javascript
解决vue的 v-for 循环中图片加载路径问题
Sep 03 Javascript
react中Suspense的使用详解
Sep 01 Javascript
浅谈vue 多个变量同时赋相同值互相影响
Aug 05 Javascript
vue3.0中setup使用(两种用法)
Dec 02 Vue.js
解决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的APC模块实现上传进度条
2015/10/27 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
JavaScript将数组转换成CSV格式的方法
2015/03/19 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
JS实现自动阅读单词(有道单词本添加功能)
2016/11/14 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
SpringMVC简单整合Angular2的示例
2017/07/31 Javascript
get  post jsonp三种数据交互形式实例详解
2017/08/25 Javascript
浅谈Vue.js中ref ($refs)用法举例总结
2017/12/19 Javascript
vue中使用input[type=&quot;file&quot;]实现文件上传功能
2018/09/10 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
简单使用Python自动生成文章
2014/12/25 Python
python使用htmllib分析网页内容的方法
2015/05/08 Python
在windows系统中实现python3安装lxml
2016/03/23 Python
pytorch 数据集图片显示方法
2018/07/26 Python
详解python:time模块用法
2019/03/25 Python
梅尔频率倒谱系数(mfcc)及Python实现
2019/06/18 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
基于django传递数据到后端的例子
2019/08/16 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
python代码能做成软件吗
2020/07/24 Python
中层干部竞争上岗演讲稿
2014/01/13 职场文书
优秀应届毕业生推荐信
2014/02/18 职场文书
电焊工岗位工作职责
2014/07/09 职场文书
学习礼仪心得体会
2014/09/01 职场文书
村委会贫困证明范本
2014/09/17 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
2014年村委会工作总结
2014/11/24 职场文书
冲出亚马逊观后感
2015/06/03 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers