ant design vue上传文件_antd vue 表单

ant design vue上传文件_antd vue 表单antdvue文件上传实例说明该实例是后端进行文件上传至minio服务器这里仅仅是展示前端antdvue得代码限制文件类型配置查看这里<template><a-upload:headers=”headers”:action=”url”:fileList=”fileList”@change=”handleChang…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

antd vue 文件上传实例

说明

该实例是后端进行文件上传至minio服务器
这里仅仅是展示前端antd vue得代码

限制文件类型配置查看
这里

<template>
  <a-upload
    :headers="headers"
    :action="url"
    :fileList="fileList"
    @change="handleChange"
    :beforeUpload="beforeUpload"
  >
    <a-button :disabled="isShow"> <a-icon type="upload" /> Upload </a-button>
  </a-upload>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
  name: 'MinioUplode',
  // 此处接收仅仅针对有有父组件得情况,如果直接使用a-upload则不需要
  props: {
    url: {
      type: String,
      default: 'api/storage/upload'
    },
    fileListTemp: {
      type: Array,
      default: () => []
    },
    isShow: {
      type: Boolean,
      default: false
    }
  },
  data () {
    return {
      fileList: this.fileListTemp,
      // 请求头里要携带token用来识别身份
      headers: {
        'Authorization': 'Bearer' + this.token()
      }
    }
  },
  methods: {
    ...mapGetters(['token']),
    // 此方法主要用来处理回显列表,以及去除没有实际上传得文件
    // 图片一旦长传在file中会有status字段,如果没有则没有实际上传
    // status有四种状态  'uploading' 'done' 'error' 'removed'
    handleChange (info) {
      let fileList = [...info.fileList]
      // 这里用来处理,页面中展示已经上传得个数
      // .slice(),括号里是负数是从尾部开始截取 限制最长15
      fileList = fileList.slice(-15)
      // 此处去除fileList中status为undefined得对象
      // 注意此处不是null!!!!
      fileList = fileList.filter(item => item.status !== undefined)
      // 从后端得回调 response 中获取url,并复制给fileList对象得url
      // 作用,有了url 前端才可以下载查看
      fileList = fileList.map(file => {
        if (file.response) {
          // 获取回调url
          file.url = file.response.data.url
        }
        return file
      })
      this.fileList = fileList
    },
    beforeUpload (file) {
      // 此处针对修改操作时,如果之前没有数据this.fileList时null 进行...this.fileList会报错
      // 错误类型: Invalid attempt to spread non-iterable instance
      if (this.fileList === null) {
        this.fileList = []
      }
      const list = [...this.fileList]
      // 限制最多只能穿15个文件
      const listLength = list.length > 14
      console.log(list.length, 'list.length')
      if (listLength) {
        this.$message.warning('最多上传15个文件')
      }
      // 限制单个文件的大小不大于100MB
      const size = file.size / 1024 / 1024 > 100
      if (size) {
        this.$message.warning('上传文件不能大于100MB')
      }
      // 返回时注意,此处要把所有得标识flag全部返回并且使用&
      // 原因:有一个条件不满足,就不能进行文件上传
      return !size && !listLength
    }
  },
  // 此处监听仅仅针对有有父组件得情况,如果直接使用a-upload则不需要
  watch: {
    fileList (val) {
      this.fileList = val
      // 向父组件更新
      this.$emit('updateFileList', val)
    },
    fileListTemp (val) {
      this.fileList = val
    }
  }
}
</script>
<style scoped>
</style>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170645.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sftp指定端口登录_查看远程端口

    sftp指定端口登录_查看远程端口使用sftp在一台服务器连另一台服务器,可以通过sftp–help查看指定端口参数。但不同服务器可能sftp版本不一样,-P指定的不是port而是sftp_server_path.却没找到指定端口参数。T^T可以尝试如下方式指定端口:sftp-oPort=123user@host…

    2022年9月14日
    0
  • Navicat for MySQL注册码_navicat永久激活

    Navicat for MySQL注册码_navicat永久激活姓名(Name):(随便填)组织(Organization):(随便填)注册码(Serial):NAVJ-W56S-3YUU-MVHV–NavicatforSQLServerV10.0.10NAVD-3CG2-6KRN-IEPMNAVL-NIGY-6MYY-XWQENAVI-C3UU-AAGI-57FW-NavicatPremium注册码NAVJ-E6YF…

    2022年10月13日
    0
  • python进制转换函数及方法[通俗易懂]

    python进制转换函数及方法[通俗易懂]python进制转换函数一.通过int函数实现其他进制转十进制假设M为某已知进制字符串n的进制数result=int(n,M)——————————————————————————————->>>result=int(‘10101’,2)>>>result>>>21result为转换为的十进制结

    2022年5月19日
    36
  • 【LeetCode每天一题】Word Break()

    【LeetCode每天一题】Word Break()

    2021年7月8日
    85
  • 电磁场与电磁波实验 01 – | 位移电流测量及电磁场与电磁波的存在实验[通俗易懂]

    电磁场与电磁波实验 01 – | 位移电流测量及电磁场与电磁波的存在实验[通俗易懂]一、实验目的 1、认识时变电磁场,理解电磁感应的原理和作用 2、理解电磁波辐射原理 3、了解位移电流的概念 二、预习要求 1、什么是法拉第电磁感应定律? 2、半波振子天线的原理。 三、实验仪器 HD-CB-V电磁场电磁波数字智能实训平台:1套 电磁波传输电缆:1套; 平板极化天线:1副; 半波振子天线:1副 (…

    2022年10月29日
    0
  • 一个普通专科生,拿什么拯救你的未来?(精简版)

    一个普通专科生,拿什么拯救你的未来?(精简版)总有人要赢,为什么不能是我!—————科比-布莱恩特原文地址:www.dushunchang.top此文为小Du博客原创出品转载,复制请注明原文出处近来看到一则知乎头条,看完时已潸然泪下。附上原文链接戳这:传送门前言:我的故事由你来倾听,做最好的自己。2021年1月26日,今天是科比布莱恩特逝世一周年,我犹豫了很久,决定以自言的方式缅怀我的老大。大家好,我是一名普通的专科生,来自云南大理,大家都叫喜欢叫我小Du。可能很多人看到我的博客…

    2022年4月8日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号