el-upload上传文件功能,传多个参数问题

本文介绍两种文件上传的方法,一种使用axios,另一种使用fetch。基于axios的方法通过data定义额外参数,并设置文件流名称。基于fetch的方法则利用FormData对象进行构建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几天有一个文件上传功能,用的是post请求,需要传file文件流以及其他的参数,总结了两种方法。

需求:传name和文件流。

在这里插入图片描述

第一种方法(基于axios):

data定义额外参数,name定义文件流名称。
参数赋值:
paramsData = { name: ‘admin’}
name = “file”
在这里插入图片描述
完整代码:

<el-upload
	  class="upload-demo"
	  action="https://jsonplaceholder.typicode.com/posts/"
	  :on-preview="handlePreview"
	  :on-remove="handleRemove"
	  :before-remove="beforeRemove"
	  :headers="authToken"
	  multiple
	  :limit="3"
	  :on-exceed="handleExceed"
	  :file-list="fileList"
	  name="file"
	  :data="paramsData">
		  <el-button size="small" type="primary">点击上传</el-button>
		  <div slot="tip" class="el-upload__tip">
		  只能上传jpg/png文件,且不超过500kb
		  </div>
</el-upload>

注意:设置token的值
authToken: {
  token: 'abcjdjeidei',
},

第二种方法(基于fetch):

条件: (1)用fetch请求
(2)获取到文件内容,此处保存的是el-upload组件上传文件参数file文件,名称叫currentFile
(3)接口名字:/detail/info
(4)token值:‘abcjdjeidei’

代码如下:

const formData = new FormData();
formData.append('file',this.currentFile.raw);
formData.append('name', 'admin');
fetch(process.env.API_ROOT + '/detail/info', {
	method: 'post',
	body: formData,
	headers: {
	  'token': 'abcjdjeidei'
	}
}).then(response=>
	response.json())
.then(res=>{
	if (res.code === 0) {
	  this.$message.success(res.msg);
	} else {
	  this.$message.error(res.msg);
	}
})
.catch(error=>{
	// console.log(error)
})
.finally(response=>{
	// console.log(response)
})

注意: response.json()是转换后端返回的数据,这样才能在then回调里获取code状态码和msg描述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值