elementui的upload组件根据后端接口上传文件到服务器失败,需要传参(header头部传参和params传参)

58 篇文章 0 订阅
33 篇文章 0 订阅

elementui的upload组件根据后端接口上传文件到服务器失败,需要传参-header头部传参和params传参

1.适用场景

先上原来的代码看一下嘛

   <el-upload :action="upload.url" :limit="1" accept=".xlsx, .xls" :file-list="fileList"
            class="el-upload" :on-success="handleChange" >
            <el-button type="danger" class="query-btn" icon="el-icon-plus" v-if="isAdmin">导入</el-button>
          </el-upload>
//data
 upload: {
  // 上传的地址
        url: process.env.VUE_APP_BASE_API + '/qysf/vKnow/importData',

      },

结果在选择了文件调用接口后返回的是200状态码,以为也是正确的
在这里插入图片描述
结果返回的消息是
在这里插入图片描述
返回的确是有问题的,后来反复排错才发现是没有header头部
在这里插入图片描述

2.解决思路

我这里现在不仅要传个header信息,业务上还需要一个参数

   <el-upload :action="upload.url" :headers="upload.headers" :limit="1" accept=".xlsx, .xls" :file-list="fileList"
            class="el-upload" :on-success="handleChange" :data="{updateSupport:upload.updateSupport}">
            <el-button type="danger" class="query-btn" icon="el-icon-plus" v-if="isAdmin">导入</el-button>
          </el-upload>
 //data
          upload: {
        // 是否更新已经存在的数据
        updateSupport: true,
        // 设置上传的请求头部
        headers: { Authorization: "Bearer " + getToken() },
        // 上传的地址
        url: process.env.VUE_APP_BASE_API + '/qysf/vKnow/importData',

      },      

再次调用接口
在这里插入图片描述
加上了token
在这里插入图片描述
传参也多了一个

在这里插入图片描述
接口响应也正常,搞定!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 ElementUI 上传文件后端,您需要: 1. 配置上传组件 ``` <el-upload class="upload-demo" action="/your/upload/api" :auto-upload="false" :on-change="handleChange"> <el-button slot="trigger" size="small" type="primary">选取文件</el-button> <el-button size="small" type="success" @click="upload">上传到服务器</el-button> <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> </el-upload> ``` 2. 在Vue.js实例中编写上传方法 ``` methods: { handleChange(file, fileList) { // file: 当前操作的文件对象 // fileList: 已上传的文件列表 }, upload() { const formData = new FormData(); // 获取上传组件中的所有文件 this.$refs.upload.uploadFiles.forEach(file => { // 将文件添加到formDataformData.append('file', file.raw); }); // 发送POST请求,将formData上传到后端 axios.post('/your/upload/api', formData, { headers: { 'Content-Type': 'multipart/form-data' } }).then(response => { // 处理响应结果 }).catch(error => { // 处理异常情况 }); } } ``` 3. 在后端编写文件上传接口 根据您的后端实现方式不同,可能需要使用不同的技术栈和框架来编写文件上传接口。通常情况下,您需要后端编写一个接收POST请求的API,将接收到的文件保存到指定的目录中,并返回上传成功的响应结果。 以上是一个简单的 ElementUI 文件上传到后端的示例,您可以根据您的实际需求进行修改和完善。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值