Ant Design Vue文件上传详解

ant design 基于vue的文件上传 (XSLX文件篇)

Upload 上传

template

<a-upload
	name="multipartFile"
	:multiple="false"
	:action="action"
	methods="post"
	@change="uploadFile"
	:file-list="fileList"
	:disabled="disabled"
	:headers="{
	Authorization: 'Bearer ' + token,
	}"
>
	<a-button><a-icon type="upload"/>
		点击上传
	</a-button>
</a-upload>

在这里插入图片描述

参数详解

  1. name

name 发到后台的文件参数名 string ‘file’


2.multiple:(这个根据自己的业务需求来决定) false:不支持 true:支持

multiple 是否支持多选文件,ie10+ 支持。开启后按住 ctrl 可选择多个文件。 boolean false

3.action: (也就是后端开发的上传接口 )

action 上传的地址 string|(file) => Promise 无

// return 里面写的就是后端开发的上传接口了 参数记得是写在上面的name里面哦
computed:{
	action () {
      if (process.env.NODE_ENV === 'development') {
        return ''
      } else if (process.env.NODE_ENV === 'test') {
        return ''
      } else if (process.env.NODE_ENV === 'production') {
        return ''
      } else if (process.env.NODE_ENV === 'dev') {
        return ''
      }
    }
}

4.methods:(这个就没什么好说的的啦哈哈哈)

method 上传请求的 http method string ‘post’ 1.5.0

5.@change: 上传文件改变时的状态 (核心)

change 上传文件改变时的状态 Function 无

methods:{
   // 上传文件
   uploadFile (info) {
     console.log('上传文件', info)
     // ant design 框架中此回调会运行三次,上传中、完成、失败都会调用这个函数。
     if (info.event) {
       // 只判断是完成的时候
       this.importfile(info.file)//  核心函数
     }
     const fileList = [...info.fileList]
     this.fileList= fileList.slice(-1)
     if (info.file.status === 'uploading') {
       this.$loading.show()
       return
     }
     if (info.file.status === 'done') {
       // 上传成功 可以在下面写自己也业务逻辑了
       this.$loading.hide()
     }
   },
    //  上传之前回调,判断上传类型
   beforeUploadcl (file) {
     const flag= file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
     if (!flag) {
       this.$message.error('请选择xlsx类型文件')
       this.fileList= []
     }
     return flag
   },
   // 核心函数
   importfile (obj) {
     const that= this
     const reader = new FileReader()
     reader.readAsArrayBuffer(obj.originFileObj) //  需要传blob类型
     reader.onload = function () {
       const buffer = reader.result
       const bytes = new Uint8Array(buffer)
       const length = bytes.byteLength
       let binary = ''
       for (let i = 0; i < length; i++) {
         binary += String.fromCharCode(bytes[i])
       }
       const XLSX = require('xlsx') //  引用
       const wb = XLSX.read(binary, {
         type: 'binary'
       })
       const outdata = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]])
       console.log(outdata) // 此为取到的excel中内容,然后就可以自己改数据,画页面啦~
     }
   },
}

6.fileList: 也就是上面代码对应的this.fileList

fileList 已经上传的文件列表(受控) object[] 无

7.disabled

disabled 是否禁用 boolean false

8: headers (这个要针对具体的业务需求了 一般很少有headesr的问题)

headers 设置上传的请求头部,IE10 以上有效 object 无

9.关于button的type也顺带一提哈哈哈,就是去icon图标里面选择喜欢的icon然后放在type里面 就能在button里面加上图标了

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Ant Design VueAnt DesignVue 实现版本,提供了一系列丰富的组件,其中包括文件上传组件。使用方法如下: 1. 安装 ant-design-vue ```bash npm install ant-design-vue ``` 2. 在 main.js 中引入 ant-design-vue ```javascript import Antd from 'ant-design-vue' import 'ant-design-vue/dist/antd.css' Vue.use(Antd) ``` 3. 在组件中使用 Upload 组件 ```html <template> <div> <a-upload> <a-button>上传文件</a-button> </a-upload> </div> </template> ``` 4. 通过绑定事件来获取上传的文件 ```html <template> <div> <a-upload @change="handleChange"> <a-button>上传文件</a-button> </a-upload> </div> </template> <script> export default { methods: { handleChange(info) { console.log(info.file) } } } </script> ``` 其中,Upload 组件提供了很多其他属性和事件,例如上传文件的地址、上传文件的方式、上传文件的限制等。详细的使用说明请参考官方文档. https://vue.ant.design/components/upload-cn/ ### 回答2: Ant Design Vue文件上传组件支持多种类型的文件上传,包括单个文件上传和多个文件上传,同时还支持以下功能: 1. 上传文件前的格式验证:可以设置允许上传的文件类型、文件大小、文件名称等规则。 2. 上传进度显示:在上传文件的过程中,可以显示上传的进度条,使用户可以清晰地了解文件上传的进度。 3. 上传成功回调:在文件上传成功后,可以执行回调函数,进行文件上传后的操作。 4. 多文件上传:支持多个文件同时上传,大大提高了文件上传的效率。 5. 文件列表展示:在上传过程中,可以通过展示已上传的文件列表,帮助用户确认已上传的文件信息。 Ant Design Vue文件上传组件使用起来非常简单,只需要引入对应的组件,按照组件的API文档,设置对应的参数即可实现文件上传的功能。同时,Ant Design Vue也提供了默认的样式,使得文件上传的样式可以与整个应用保持一致。 总的来说,Ant Design Vue文件上传组件非常全面和易用,适用于各种应用场景,能够帮助开发者快速实现文件上传的功能。 ### 回答3: Ant Design Vue是一款非常先进的前端UI组件库,它提供了非常丰富和全面的UI组件来帮助开发者快速构建高质量的Web应用程序。其中文件上传控件是Ant Design Vue中非常实用和常用的组件之一。 Ant Design Vue中提供了Upload组件用于文件上传,它非常简单易用,只需要通过指定action属性来指定上传文件的后端处理接口,然后通过onChange事件来获取上传文件的信息并进行后续处理。同时,Ant Design Vue也提供了非常多样化的配置和样式,可以根据具体需要进行自定义和扩展。 具体而言,Ant Design Vue中的文件上传控件有以下几个重要的属性和事件: onSuccess:文件上传成功的回调函数,参数为响应结果。 onError:文件上传失败的回调函数,参数为错误信息。 onChange:上传状态改变时的回调函数,参数包括文件列表和上传进度信息。 beforeUpload:上传前的钩子函数,可以根据需要进行文件类型、大小、个数等检查和处理。 action:后端处理上传文件的接口地址。 showUploadList:是否显示上传文件列表。 在进行具体的文件上传控件实现时,可以按照以下步骤进行操作: 1. 引入Ant Design Vue组件库。 2. 在组件中引入Upload和Icon组件。 3. 定义data数据中的fileList数组,用于保存上传文件列表。 4. 在模板中使用Upload组件,设置对应的属性和事件,以实现文件上传功能。 5. 在方法中定义处理上传成功和失败的回调函数,进行文件上传状态的处理和提示。 6. 可以根据需要进行样式调整和自定义扩展。 综上所述,Ant Design Vue中的文件上传控件非常实用和简单易用,能够满足大多数文件上传的需求,同时也提供了非常多样化的配置和样式,可以进行灵活的自定义和扩展,是Ant Design Vue中不可或缺的重要组件之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心机熊

希望能对你有帮助哈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值