vue限定类型上传文件 最简单实践(单个可文件、可图片)

这个是为了文件导入弄的,内部运维人员使用的 目前还没做删除文件的交互

bash 复制代码
          <el-upload
            class="upload-demo"
            ref="upload"
            :before-upload="handleBeforeUpload"
            action="#"
            accept=".xls,.xlsx"
            :limit="1"
          >
            <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
            <div slot="tip" class="el-upload__tip">请上传 大小不超过 10MB 格式为 xls/xlsx 的文件</div>
            ##简单展示 未做删除交互
            <li v-if="this.file != null">{{this.file.name}}</li>
          </el-upload>



data() 内新增属性
 file:null,
bash 复制代码
##获取file对象

  handleBeforeUpload(file) {
      this.file =file;
    },
##表单提交
    submitFormImport(){
      this.$refs["forms"].validate(valid => {
        let formData = new FormData();
        formData.append('file',this.file);
        ##属性类型
        formData.append('taskId',this.taksForip.taskId);
        console.log(formData);
        importForCode(formData).then(response => {
          this.$modal.msgSuccess(response.msg);
          this.opens = false;
        });
      });
    },
## (@RequestParam("file") MultipartFile file  后台属性 

延伸代码 再次限制类型 与大小 fileSizewei

fileSize: {

type: Number,

default: 5 ##5M

},

bash 复制代码
   handleBeforeUpload(file) {
      // 校检文件类型
      if (this.fileType) {
        const fileName = file.name.split(".");
        const fileExt = fileName[fileName.length - 1];
        const isTypeOk = this.fileType.indexOf(fileExt) >= 0;
        if (!isTypeOk) {
          this.$modal.msgError(
            `文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`
          );
          return false;
        }
      }
      // 校检文件大小
      if (this.fileSize) {
        const isLt = file.size / 1024 / 1024   < this.fileSize;
        if (!isLt) {
          this.$modal.msgError(`上传文件大小不能超过 ${this.fileSize} MB!`);
          return false;
        }
      }
      this.$modal.loading("正在上传文件,请稍候...");
      this.number++;
      return true;
    },
相关推荐
憧憬成为web高手5 小时前
ACTF 12307复现
前端·bootstrap·html
wordbaby6 小时前
Axios 上传大文件崩溃:鸿蒙 RNOH 下 XHR 返回空响应头引发的"假失败"
前端·react native
wordbaby6 小时前
React Native 列表分页实战:下拉刷新与上拉加载的工程化方案
前端·react native
wordbaby6 小时前
脱离 Tab 栏的艺术:React Native 全屏子页面的导航架构实践
前端·react native·harmonyos
陈随易7 小时前
Redis 8.8发布,一定要更新
前端·后端·程序员
wordbaby7 小时前
React Native 新架构落地鸿蒙:跨三端政务级应用的工程实践与深度复盘
前端·react native·harmonyos
晓说前端7 小时前
第一篇:为什么学TypeScript?—— 优势、场景与环境搭建
javascript·ubuntu·typescript
excel8 小时前
为什么我推荐使用 Termius:现代 SSH 工具的完整体验
前端·后端
ZC跨境爬虫8 小时前
模块化烹饪小程序开发日记 Day7:(菜谱详情接口开发与JSON数据读取全流程)
前端·javascript·css·ui·微信小程序·json
এ慕ོ冬℘゜9 小时前
JS 前端基础面试题
开发语言·前端·javascript