antd vue表单上传文件_AntDesign vue学习笔记-自定义文件上传

本文介绍了两种在Ant Design Vue中自定义文件上传的方法,包括使用`customRequest`覆盖默认行为和通过`beforeUpload`处理文件。详细步骤包括如何添加token、发送formData到服务器,并提供了.NET Core后端代码示例。
摘要由CSDN通过智能技术生成

上传文件时实际可能需要传输一个token。

方法一:

1、查看vue antdesign文档

https://vue.ant.design/components/upload-cn/

2、使用customRequest

customRequest 通过覆盖默认的上传行为,可以自定义自己的上传实现 Function

3、定义customRequest,之前定义action行为会被覆盖,可以注释掉

4、customRequest代码如下

customRequest(data) {

constformData= newFormData()

formData.append('file', data.file)

formData.append('token', 'aiufpaidfupipiu')//随便写一个token示例

this.saveFile(formData)

},

saveFile(formData) {

letthat= this

httpUtil.post("/snf/File/PostImportExcel", formData, res=>{

retFun(res)

})

},

5、这样当文件变化时,就会附带token并上传到服务器,NetWork观察提交数据如下

6、有同学反映无法接受数据,现给一个后端代码demo(.netcore)参考,新建一个.netcore webapi工程,修改Post代码如下。

7、D盘下文件保存成功如下

方法二:

最近发现有一种官方例子更符合习惯思维的方法,看这个例子

Select File

type="primary"@click="handleUpload":disabled="fileList.length === 0":loading="uploading"style="margin-top: 16px"

>{{ uploading? 'Uploading' : 'Start Upload'}}

exportdefault{

data() {return{

fileList: [],

uploading:false,

};

},

methods: {

handleRemove(file) {const index = this.fileList.indexOf(file);const newFileList = this.fileList.slice();

newFileList.splice(index,1);this.fileList =newFileList;

},

beforeUpload(file) {this.fileList = [...this.fileList, file];return false;

},

handleUpload() {const { fileList } = this;const formData = newFormData();

fileList.forEach(file=>{

formData.append('files[]', file);//后面再加上token

});this.uploading = true;//You can use any AJAX library you like

request({

url:'https://www.mocky.io/v2/5cc8019d300000980a055e76',

method:'post',

processData:false,

data: formData,

success: ()=>{this.fileList =[];this.uploading = false;this.$message.success('upload successfully.');

},

error: ()=>{this.uploading = false;this.$message.error('upload failed.');

},

});

},

},

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值