手写单文件上传,vue3+ts中对接口的封装

本文介绍了一个简单的单文件导入功能实现,包括前端文件选择交互及后端数据处理流程。同时,还详细讲解了如何封装axios以简化HTTP请求过程,并展示了具体的使用案例。

最近使用的一个功能,需要用到一个文件导入的功能。这次写的,仅仅是一个单文件导入,把文件发给后端,后端返回给我需要的数据。

<div>
  <el-button @click="onImport" type="primary" icon="el-icon-upload2">导入</el-button>
  <input v-show="false" ref="file" type="file" @change="reads" />
</div>
// 导入
        onImport() {
            this.$refs.file.click()
        },
        reads(e) {
            let file = e.target.files[0];
            if (!(file.name.split('.').pop().toLowerCase() == 'xls' || file.name.split('.').pop().toLowerCase() == 'xlsx')) {
                this.$message({
                    message: '请上传正确的格式文件',
                    type: 'warning'
                });
                return
            }
            let data = new FormData();
            data.append("multipartFile", new Blob([file]));
            api.ExecutiveSummary(data).then(res => {
                if (res.code == 200) {
                    this.tableData = this.tableData.concat(res.data);
                    console.log(this.tableData, '---concat');
                    this.$refs.file.value = ''
                } else {
                    this.$message({
                        message: res.msg,
                        type: 'warning'
                    });
                }
            })
        },

需要说明的是,我用的是input原生文件上传通过v-show隐藏input,通过ref获取到该dom,然后出发点击事件,在每次上传完后,要手动清空input中上传的文件: this.$refs.file.value = ''。

  • ts学习小记

  1. 在request.js中封装axio

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值