基于vue3 elment+ 的文件及表单参数上传,响应接受

这里有几个关键是

第一个是 上传用'Content-Type': 'multipart/form-data'方式向后台请求数据  'application/json'不行。这里需要单独设置一下覆盖一下通用的请求api方法

   //一般通用application/json 请求api方式的写法

   export const getbuttonlist = () => {

    return request.get({ url: '/api/getbuttonlist'})

  }

  //如果是要导入 文件上传时需要重写Content-Type为 'Content-Type': 'multipart/form-data'的设置方式Authorization我就随便写一个正常时token(具体设置方式如下)

  export const upload = (data) => {

    const  headers = {

      'Content-Type': 'multipart/form-data',

      'Authorization':'1'

    }

    return request.post({ url: '/api//upload',data,headers})

  }

第二个是 把文件附加到请求参数的方式,就是  

let formData = new FormData();

formData.append("file", fileList.value[0].raw);(我这里就一个文件,就这样把文件原始值应该是类似字节二进制 附件到formData)

 formData.append("docId", '4314398823146323968');(这个是附件普通提交的表单信息)

vue调用及视图层  <el-uploadv-model:file-list="fileList"class="upload-demo"action="#"//这个参数咱们不用 直接赋值为#即可:http-request="uploadAction"multiple:before-remove="beforeRemove":limit="1":on-exceed="handleExceed"><el-button type="primary">导入样本</el-button></el-upload>const fileList = ref<any[]>([])const handleExceed: UploadProps['onExceed'] = (files, uploadFiles) => {ElMessage.warning(`The limit is 3, you selected ${files.length} files this time, add up to ${files.length + uploadFiles.length} totally`)
}// 上传请求
const uploadAction = async () => {let formData = new FormData();console.log('formData ',fileList)if( fileList.value.length>0){formData.append("file", fileList.value[0].raw);formData.append("docId", '4314398823146323968');formData.append("plateNo", '1');}const res = await   upload(formData)if (res) {const { data } = resconsole.log('上传请求 上传 ', data)}
}const beforeRemove: UploadProps['beforeRemove'] = (uploadFile, uploadFiles) => {return ElMessageBox.confirm(`Cancel the transfer of ${uploadFile.name} ?`).then(() => true,() => false)
}
api层   //加载数据(其他的普通json请求方法)export const getbuttonlist = () => {return request.get({ url: '/api/getx'})}//本样例 调用的上传 api export const upload = (data) => {const  headers = {'Content-Type': 'multipart/form-data','Authorization':'1'}return request.post({ url: '/api/sample/sample/upload',data,headers})}request.post 它内部是下面这样的,我们重写了他的headers,它识别你传入的参数名是headers就自动覆盖原来的headers为你设置的headers,这样就实现使用const  headers = {'Content-Type': 'multipart/form-data','Authorization':'1'}了import service from './service'
import { CONTENT_TYPE,FORM_CONTENT_TYPE } from '@/constants'
import { useUserStoreWithOut } from '@/store/modules/user'const request = (option: AxiosConfig) => {const { url, method, params, data, headers, responseType } = optionconst userStore = useUserStoreWithOut()return service.request({url: url,method,params,data: data,responseType: responseType,headers: {'Content-Type': CONTENT_TYPE,[userStore.getTokenKey ?? 'Authorization']: userStore.getToken ?? '',...headers}})
}export default {post: <T = any>(option: AxiosConfig) => {return request({ method: 'post', ...option }) as Promise<IResponse<T>>},
......略}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/845488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES 生命周期管理

一 .概念 ILM定义了四个生命周期阶段&#xff1a;Hot&#xff1a;正在积极地更新和查询索引。Warm&#xff1a;不再更新索引&#xff0c;但仍在查询。cold&#xff1a;不再更新索引&#xff0c;很少查询。信息仍然需要可搜索&#xff0c;但是如果这些查询速度较慢也可以。Dele…

TOPIAM数字身份管控平台前端技术实践

一、引言 随着企业信息化程度的不断加深&#xff0c;内部办公系统、业务系统及三方SaaS系统的集成与整合成为企业面临的重要挑战之一。特别是如何有效管理员工账号、权限、身份认证以及应用访问&#xff0c;成为保障企业信息安全、提升用户体验的关键。TOPIAM数字身份管控平台…

VSCode Prettier - Code formatter 代码格式化

格式化代码是一个挑战&#xff0c;但现代开发工具可以自动保持团队代码库的一致性。 在本文中&#xff0c;您将设置 Prettier 以自动格式化 Visual Studio Code&#xff08;也称为 VS Code&#xff09;中的代码。 1. 安装插件 2. 定义代码风格 在项目根目录下创建一个pretti…

JAVA:异步任务处理类CompletableFuture让性能提升一倍

一、前言 CompletableFuture 是 Java 8 引入的一个功能强大的类&#xff0c;用于异步编程。它表示一个可能尚未完成的计算的结果&#xff0c;你可以对其添加回调函数来在计算完成时执行某些操作。在 Spring Boot 应用中&#xff0c;CompletableFuture 可以用于提高应用的响应性…

【NPS】微软NPS配置802.1x,验证域账号,动态分配VLAN(有线网络篇)

上两篇中介绍了如何配置NPS和在WLC上如何配置802.1X来实现验证域账号和动态分配VLAN&#xff0c;802.1x协议作为一种成熟的身份验证框架&#xff0c;不仅适用于无线网络&#xff0c;同样也适用于有线网络环境。这里我们将介绍如何在有线网络中部署802.1x认证&#xff0c;以验证…

Android Coil的简单介绍及使用

前言&#xff1a; 本文是借鉴网上大佬的Coil相关技术文章及结合自己项目中的实际使用情况&#xff0c;对Coil作一个简单介绍。 简介&#xff1a; Coil是一个Android的图片加载框架库&#xff0c;是通过Kotlin协程的方式加载图片的&#xff0c;相对于Glide、Picasso、Fresco等…

SpringBoot启动时使用外置yml文件

第一步&#xff1a;打包时排除yml文件 <build><resources><resource><!-- 排除的文件的路径 --><directory>src/main/resources</directory><excludes><!-- 排除的文件的名称 --><exclude>application-dev.yml</e…

返回值

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 到目前为止&#xff0c;我们创建的函数都只是为我们做一些事&#xff0c;做完了就结束。但实际上&#xff0c;有时还需要对事情的结果进行获取。这类…

使用Redis常遇到的问题

文章目录 概述缓存雪崩、穿透、击穿大key问题热Key问题缓存和数据库双写一致性问题缓存并发竞争Redis线上阻塞要如何排查Redis 常见的性能问题都有哪些Redis 如何做内存优化Redis数据倾斜 概述 在使用Redis时&#xff0c;有几个常见的问题可能会出现&#xff0c;包括但不限于以…

调用上传文件接口出现格式错误

一、造成这种错误的可能有很多 1.检查一下传递格式 2.检查一下接口要求的格式 二、举个例子 这两个有什么区别&#xff1f; 那就是json、和form-data&#xff0c;一定要看仔细接口 如果还是按照json的方式去传就会报错 三、更改header里Content-Type的类型 json等的heade…

AWS CLI 命令行详解

官网 ## aws cli https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/cli-configure-files.html## ec2 api https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-status.html 支持的格式 https://docs.aws.amazon.com/zh_cn/cli/v1/userguide/cli…

优雅地设计一个Restful响应体类(结构体)——R

highlight: xcode theme: vuepress 简介 今天给大家介绍一下如何设计一个业务数据响应体类&#xff0c;就是前端每次请求后端返回的数据我们要统一数据结构&#xff0c; 不能想怎么写就怎么写。规定一个通用的后端数据响应体类十分必要。 响应体类R 其实也很简单&#xff0c;只…

strcpy、strncpy、strcat、strncat、strcmp、strstr字符串函数的使用和模拟

strcpy的使用和模拟&#xff08;作用&#xff09; 将一个字符串的内容复制到另外一个字符串中代替掉。 strcpy的使用效果 #include <stdio.h> #include <string.h>int main () {char str1[]"Sample string";char str2[40];char str3[40];strcpy (str2…

Python 学习笔记【1】

此笔记仅适用于有任一编程语言基础&#xff0c;且对面向对象有一定了解者观看 文章目录 数据类型字面量数字类型数据容器字符串列表元组 type()方法数据类型强转 注释单行注释多行注释 输出基本输出连续输出&#xff0c;中间用“,”分隔更复杂的输出格式 变量定义del方法 标识符…

网页实现输入固定前缀,以及打开数量打开固定数量的网页

网页实现输入固定前缀&#xff0c;以及打开数量打开固定数量的网页 废话不多说直接上代码 今天客户说要写一个小需求&#xff1a; 我这边需求是帮我编写一个小程序或者是批处理文件&#xff0c;实现尾数连续的链接打开 例如http://abc1.com,后续依次自动打http://abc2.com,http…

nginx搭建简单负载均衡demo(springboot)

目录 1 安装nignx 1.1 执行 brew install nginx 命令&#xff08;如果没安装brew可百度搜索如何安装brew下载工具。类似linux的yum命令工具&#xff09;。 1.2 安装完成会有如下提示&#xff1a;可以查看nginx的配置文件目录。 1.3 执行 brew services start nginx 命令启动…

9秒爬取庆余年2分集剧情

版本一: 要创建一个Python爬虫程序来爬取指定网站的分集剧情,我们需要使用requests库来发送HTTP请求,以及BeautifulSoup库来解析HTML内容。以下是一个简单的示例,展示了如何爬取你提供的网站的分集剧情,并将每集剧情保存到本地的.txt文件中。 首先,确保你已经安装了req…

if语句知识点

作用 让顺序执行的代码产生分歧。 if 语句 作用&#xff1a;满足条件时&#xff0c;多执行一些代码。 语法&#xff1a; if(bool类型值)//bool类型相关&#xff1a;bool变量&#xff0c;条件运算符表达式&#xff0c;逻辑运算符表达式 {满足条件要执行的代码&#xff0c;写在…

遍历路径,统计每个文件大小

功能&#xff1a;统计&#xff08;参数&#xff09;路径下每个文件大小&#xff0c;记录属主&#xff0c;并且不统计超链接的文件和文件夹。 #!/bin/bash# 定义函数来递归遍历文件夹 function traverse_directory {local directory"$1"# 遍历目录下的文件和子目录fo…

将三个字符串通过strcat连接起来并打印输出

将三个字符串通过strcat连接起来并打印输出 #include <stdio.h> #include <string.h> int main () { char a[10]"I", b[10]" am",c[10]" happy"; strcat(a,b); strcat(a,c); printf("%s",a); printf("\n"); re…