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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • asp.net 中mvc return Content(“ok”) ;return View() return JSon()区别

    asp.net 中mvc return Content(“ok”) ;return View() return JSon()区别

    2022年3月4日
    53
  • xdoj递归数列_递归求数组元素之和

    xdoj递归数列_递归求数组元素之和标题:递归数列类别函数与递归程序类型:代码片段时间限制:2S内存限制10000Kb问题描述一个数列A定义如下A(1)=1,A(2)=1/(1+A(1)),A(3)=1/(1+A(2)),……A(n)=1/(1+A(n-1))。定义一个函数function用来计算数列的第第n项的值,函数声明如下:doublefunction(intn);输入说明:输入为1个正整数n,n<=10。输出说明函数输出数列A第n项的值,…

    2025年10月31日
    1
  • 135首经典欧美歌曲 —附下载地址

    135首经典欧美歌曲 —附下载地址135首经典欧美歌曲—附下载地址(2011-03-1212:52:14)转载▼标签:杂谈分类:转载精选源自张海峡新浪博客:http://blog.sina.com.cn/zhanghaixiaf

    2022年7月2日
    40
  • Windows下的免安装版MySQL配置「建议收藏」

    Windows下的免安装版MySQL配置「建议收藏」近日在新的电脑上安装MySQL遇到一些小问题,在此做分享,也作为日后备用。下载MySQL进入MySQL官网,依次点击:上方选项卡DOWNLOADS-&gt;页面底端MySQLCommunityEdition-&gt;MySQLCommunityServer,此时会来到以下这个页面:下载红色框选中的项目,是个压缩包。下载完毕后直接解压,可以开始配置。建议保存的路径不要有中文,…

    2022年6月6日
    34
  • BP神经网络的Matlab实现——人工智能算法

    BP神经网络的Matlab实现——人工智能算法这几天在各大媒体上接触到了人工智能机器学习,觉得很有意思,于是开始入门最简单的机器算法——神经网络训练算法(NeuralNetworkTraining);以前一直觉得机器学习很高深,到处是超高等数学、线性代数、数理统计。入坑发现确实是这样!但是呢由项目实例驱动的学习比起为考试不挂科为目的的学习更为高效、实用!在遗传算法、神经网络算法的学习入门之后觉得数学只要用心看没问题的(即使是蒙特卡洛和马尔

    2022年6月10日
    49
  • 使用XLSTransformer生成报表的步骤和流程[通俗易懂]

    使用XLSTransformer生成报表的步骤和流程[通俗易懂]使用XLSTransformer生成报表的步骤和流程:1,查询数据库记录,获得需要导出到execl中的数据;2,把数据封装到List中; 通常我们是这样做的:Listbusiness=newArrayListObject>();3,将List放到HashMap中;通常我们是这样做的:Mapbeans=newHashMap();busine

    2022年7月24日
    21

发表回复

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

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