当前位置: 首页 > news >正文

pc文件上传

1.代码:

<template><div><el-upload:multiple="true":auto-upload="true":headers="headers":action="uploadFileUrl":before-upload="handleBeforeUpload":on-error="handleUploadError":on-success="handleUploadSuccess":on-remove="handleRemove":file-list="fileList"><el-button size="small" type="primary">点击上传</el-button><div slot="tip" class="el-upload__tip">只能上传"doc", "xls", "ppt", "txt", "pdf"文件,且不超过5MB</div></el-upload></div>
</template>
<script>
import { getToken } from "@/utils/auth";
export default {props:{fileList1:{ // 文件列表回显type:Array,default:[]}},data() {return {uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址fileList: this.fileList1, // 文件列表fileType:["doc", "xls", "ppt", "txt", "pdf"], // 文件类型fileSize:5, // 文件大小headers: {Authorization: "Bearer " + getToken(),},submitFileUrl:this.fileList1 // 服务器返回的地址}},methods: {// 删除handleRemove(file){for (let i = 0; i < this.submitFileUrl.length; i++) {if(this.submitFileUrl[i].name == file.name ){this.submitFileUrl.splice(this.submitFileUrl.indexOf(this.submitFileUrl[i].name), 1)}}this.$emit("input",this.submitFileUrl)},// 上传前校检格式和大小handleBeforeUpload(file) {// 校检文件类型if (this.fileType) {let fileExtension = "";if (file.name.lastIndexOf(".") > -1) {fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1);}const isTypeOk = this.fileType.some((type) => {if (file.type.indexOf(type) > -1) return true;if (fileExtension && fileExtension.indexOf(type) > -1) return true;return false;});if (!isTypeOk) {this.fileList = this.fileList.slice(0,-1);this.$message.error(`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`);return false;}}// 校检文件大小if (this.fileSize) {const isLt = file.size / 1024 / 1024 < this.fileSize;if (!isLt) {this.fileList = this.fileList.slice(0,-1);this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);return false;}}return true;},// 上传失败handleUploadError(err) {this.$message.error("上传失败, 请重试");},// 上传成功回调handleUploadSuccess(res, file) {this.submitFileUrl.push({name:res.data.fileName,url:res.data.url})this.$message.success("上传成功");this.$emit("input",this.submitFileUrl)},}
}
</script><style scoped></style>

2.界面:

 

http://www.lryc.cn/news/111360.html

相关文章:

  • Vue3_对响应式对象解构赋值之后失去响应性
  • 3d 地球与卫星绕地飞行
  • Opencv-C++笔记 (16) : 几何变换 (图像的翻转(镜像),平移,旋转,仿射,透视变换)
  • 第十次CCF计算机软件能力认证
  • 【敏捷开发】测试驱动开发(TDD)
  • 骑砍二 ATC MOD 使用教程与应用案例解析
  • python和c语言哪个好上手,c语言和python语言哪个难
  • 智能优化算法 | Matlab实现鲸鱼优化算法(Whale Optimization Algorithm)(内含完整源码)
  • Android随笔-VPN判断
  • 【黑马头条之kafka及异步通知文章上下架】
  • Modelsim打开后报unable to checkout a viewer license
  • 计算机视觉与图形学-神经渲染专题-Seal-3D(基于NeRF的像素级交互式编辑)
  • synchronized的底层实现原理
  • 屏幕取色器Mac版_苹果屏幕取色工具_屏幕取色器工具
  • HDFS中的Federation联邦机制
  • Spring Boot 单元测试
  • k8s部署nginx访问Tomcat
  • springboot配置文件的使用
  • blender 毛发粒子
  • . 在css中的应用
  • 黑马程序员SpringMVC练手项目
  • SQL注入 ❤ ~~~ 网络空间安全及计算机领域常见英语单词及短语——网络安全(二)
  • 【外卖系统】新增菜品
  • 使用docker搭建GPT服务
  • Qt项目---简单的计算器
  • Flutter游戏引擎Flame系列笔记 - 1.Flame引擎概述
  • 基于SpringBoot+Vue的地方美食分享网站设计与实现(源码+LW+部署文档等)
  • 在java中操作redis_Data
  • 嵌入式开发学习(STC51-14-时钟)
  • ES新特性部分