news 2026/4/23 17:10:28

Vue3上传文件自动处理Content-Type

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vue3上传文件自动处理Content-Type
vue3中,以下代码: /** * 上传作业指导书文件,实现上传文件到数据库 image 字段或本地磁盘中,使用 post 发送请求,发送的数据只有:请求体数据(表单数据 formData) * @param formData 表单数据,包含的数据有:文件数据(uploadFile)和 文件编号(fileNo) {@link FormData} * @returns */ export const workInstructionUploadFileService = (formData: FormData) => { return request.post("/resources/workInstruction/uploadFile", formData, { // 上传文件,需设置 headers 信息,将"Content-Type"设置为"multipart/form-data" headers: { "Content-Type": "multipart/form-data" } }); }; 需不需要设置"Content-Type": "multipart/form-data"?

不需要手动设置"Content-Type": "multipart/form-data"

原因如下:

1. 浏览器会自动设置

当使用FormData对象发送请求时,浏览器会自动设置正确的Content-Type,并包含必要的 boundary(边界分隔符)。手动设置可能会破坏这个机制。

2. 会丢失 boundary 信息

如果你手动设置了"Content-Type": "multipart/form-data",但没有包含 boundary,请求会失败。正确的格式应该是:

text

Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

3. 推荐的正确写法

typescript

export const workInstructionUploadFileService = (formData: FormData) => { return request.post("/resources/workInstruction/uploadFile", formData); // 不需要手动设置 headers,axios 会自动处理 };

4. 验证方式

你可以在浏览器开发者工具的 Network 标签页查看实际的请求头,会发现:

  • 手动设置时:Content-Type: multipart/form-data

  • 自动设置时:Content-Type: multipart/form-data; boundary=...

5. 特殊情况

只有在以下情况下需要手动设置:

  • 使用的请求库不支持自动设置

  • 需要自定义 boundary(极少情况)

  • 需要在 header 中添加其他特定信息

对于你使用的axios或类似的现代 HTTP 库,它们都会自动正确处理FormData的 Content-Type。

建议修改:

typescript

/** * 上传作业指导书文件 * @param formData 包含 uploadFile 和 fileNo 的表单数据 * @returns */ export const workInstructionUploadFileService = (formData: FormData) => { return request.post("/resources/workInstruction/uploadFile", formData); // axios 会自动设置正确的 Content-Type 和 boundary };

这样代码更简洁,也更符合最佳实践。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:29:33

Wan2.2-T2V-A14B支持多摄像头视角切换的实现机制

Wan2.2-T2V-A14B 多摄像头视角切换机制深度解析 在影视创作中,镜头语言是叙事的灵魂。一个精准的推拉摇移、一次恰到好处的主客视角转换,往往能极大增强情节张力与观众代入感。然而,在AI生成视频领域,大多数模型仍停留在“固定机位…

作者头像 李华
网站建设 2026/4/23 11:12:30

Windows右键菜单大扫除:ContextMenuManager极简使用手册

Windows右键菜单大扫除:ContextMenuManager极简使用手册 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾经为Windows右键菜单中那些杂乱无章…

作者头像 李华
网站建设 2026/4/23 3:18:46

零基础掌握镜像烧录:Balena Etcher新手快速上手指南

零基础掌握镜像烧录:Balena Etcher新手快速上手指南 【免费下载链接】etcher Flash OS images to SD cards & USB drives, safely and easily. 项目地址: https://gitcode.com/GitHub_Trending/et/etcher 想要轻松将系统镜像写入SD卡或USB驱动器吗&#…

作者头像 李华
网站建设 2026/4/23 15:33:49

考试场景下的MCP AI Agent容灾设计(专家级高可用部署方案曝光)

第一章:考试场景下MCP AI Agent容灾设计概述在高并发、强一致性的考试系统中,MCP(Mission-Critical Processing)AI Agent承担着实时监考、异常行为识别与应急响应等关键任务。一旦AI Agent出现故障,可能导致监考中断、…

作者头像 李华
网站建设 2026/4/23 11:12:32

Linux GPIO模拟SPI

目录 目录 前言 软件SPI的DTS配置参考 软件SPI的内核配置参考 软件SPI的验证测试参考 总结 前言 SPI(serial peripheral interface)是一种高速的、全双工、同步的串行通信总线。 全双工体现在主从设备间通信时发送数据和接收数据是单独的数据线&…

作者头像 李华
网站建设 2026/4/22 18:02:02

为什么说程序员的核心能力不是技术更不是架构能力?

见字如面,我是军哥!昨天我和一位在美国的 tiktok 工作粉丝聊了大概 1 小时,他是博士,在linedin 和亚马逊都工作过,是资深的算法工程师,我们聊了AI,聊了职场的核心能力,最终我们得出了…

作者头像 李华