Element UI Plus + Vue3 给 Upload设置请求头

问题描述

在vue项目中我们发送 ajax 请求一般都会使用 axios,并在 axios 中设置axios.defaults.baseURL,请求的基本地址,并在请求拦截器中设置 headers
使用 el-upload 上传组件时,action 为必选参数,上传的地址。
但此时我们为action填写地址不能不写基本地址而仅写 upload,要写完整的地址。
这是因为 el-upload 上传组件在上传发送请求时,不会去使用我们设置的 axios,而是在组件内部自己封装了自己的请求方法。所以我们必须把地址写完整。
那有时在上传时会报出错误,例如“无效token”,这是因为我们没有为此上传请求设置请求头部。el-upload 组件有一个属性 headers ,设置上传的请求头部。

解决方案

HTML 代码

 <el-upload class="upload-demo" drag 
	:action=uploadPath 
	multiple="true" 
	accept=".pdf, .xlsx, .xls" 
	:headers="headers"
	:show-file-list="false" 
	:on-change="handleChange">
     <el-icon class="el-icon--upload"><upload-filled /></el-icon>
     <div class="el-upload__text">
         ドラッグ・ドロップもしくはクリックしてファイルを選択してください
     </div>
     <template #tip>
         <div class="el-upload__tip">
             PDF のみアップロードできます
         </div>
     </template>
 </el-upload>

JS 代码

<script setup>
	import { useUserStore } from '@/store/user'
	const userStore = useUserStore()
	const token = userStore.userInfo.token
	const Authorization = `Bearer ${token}`
	const headers = ref({'Authorization':Authorization})
</script>

引用

如何在ElementUI的上传组件el-upload中设置header

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要实现头像上传,可以结合Spring Boot后端框架,Vue前端框架以及Element UI组件库进行实现。 首先,在Vue前端页面中,可以使用Element UI中的Upload组件实现文件上传功能。可以在页面中定义一个Upload组件,设置action属性为上传接口的URL,设置headers属性为请求头部信息,设置on-success属性为上传成功后的回调函数。具体代码如下: ``` <template> <div> <el-upload class="avatar-uploader" action="/api/uploadAvatar" :headers="{ Authorization: 'Bearer ' + token }" :show-file-list="false" :on-success="handleSuccess"> <img v-if="imageUrl" :src="imageUrl" class="avatar"> <i v-else class="el-icon-plus avatar-uploader-icon"></i> </el-upload> </div> </template> <script> import { getToken } from '@/utils/auth' export default { data() { return { imageUrl: '', token: getToken() } }, methods: { handleSuccess(response) { this.imageUrl = response.data.url } } } </script> ``` 其中,token是用于认证的令牌,可以通过getToken函数获取。handleSuccess函数是上传成功后的回调函数,其中response.data.url表示上传成功后的图片URL。 然后,在Spring Boot后端接口中,可以使用Spring MVC的注解@RequestParam来接收上传的文件。具体代码如下: ``` @RestController @RequestMapping("/api") public class UploadController { @PostMapping("/uploadAvatar") public JsonResult uploadAvatar(@RequestParam("file") MultipartFile file) throws IOException { // 处理上传的文件 return JsonResult.ok("url", "http://www.example.com/avatar.jpg"); } } ``` 其中,@PostMapping注解表示接收POST请求,@RequestParam("file")注解表示接收名为file的文件参数。处理上传的文件后,可以返回一个JsonResult对象,其中包含上传成功后的图片URL。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值