news 2026/4/17 18:16:10

如何用 FormData 配合 Fetch 实现无刷新的多文件上传

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用 FormData 配合 Fetch 实现无刷新的多文件上传

用 FormData 配合 Fetch 实现多文件无刷新上传,需遍历 input.files 将每个文件以相同字段名(如“files”)append 到 FormData;Fetch 会自动设置 multipart/form-data 及 boundary;进度监听推荐 XMLHttpRequest 或 axios;后端需用 multer 等中间件解析 multipart 数据。用 FormData 配合 Fetch 实现多文件无刷新上传,核心是把 <input type="file" multiple> 选中的文件构造成 FormData 对象,再通过 Fetch 发送到后端,同时处理好进度、错误和响应解析。构造 FormData 并添加多个文件用户选择多个文件后,input.files 是一个 FileList 对象。不能直接传入 FormData,但可以遍历它,逐个 append 到 FormData 中。注意:每个文件要使用相同的字段名(如 "files"),后端才能识别为数组或多个文件。示例代码:const input = document.querySelector('input[type="file"]'); input.addEventListener('change', async () => { const formData = new FormData(); for (let file of input.files) { formData.append('files', file); // 字段名统一,后端接收为多文件 } try { const res = await fetch('/upload', { method: 'POST', body: formData, // ?? 不要手动设置 Content-Type!浏览器会自动设为 multipart/form-data 并带上 boundary }); const data = await res.json(); console.log('上传成功', data); } catch (err) { console.error('上传失败', err); } });监听上传进度(需后端支持流式响应)Fetch 原生不提供上传进度事件,但可通过 XMLHttpRequest 或第三方库(如 axios)实现。如果坚持用 Fetch,可借助 ReadableStream + ProgressEvent 模拟,但兼容性和实用性有限。更推荐方案: 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。

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

MindMaster/Xmind用户迁移指南:如何快速上手mind-map并实现文件互转

MindMaster/Xmind用户迁移指南&#xff1a;如何快速上手mind-map并实现文件互转 作为一名长期使用MindMaster和Xmind的深度用户&#xff0c;我完全理解更换思维导图工具时的犹豫和担忧。毕竟这些工具承载了我们多年的工作习惯和宝贵数据。但当我第一次接触到mind-map时&#xf…

作者头像 李华
网站建设 2026/4/17 17:53:49

Java CompletableFuture 异步链优化

Java CompletableFuture 异步链优化&#xff1a;提升并发编程效率 在现代高并发应用中&#xff0c;异步编程已成为提升性能的关键手段。Java 8引入的CompletableFuture为开发者提供了强大的异步任务编排能力&#xff0c;但其链式调用的性能与可读性直接影响系统效率。如何优化…

作者头像 李华
网站建设 2026/4/17 3:56:39

Bosch SMI810 IMU传感器驱动开发实战:从SPI通信到数据处理全流程解析

Bosch SMI810 IMU传感器驱动开发实战&#xff1a;从SPI通信到数据处理全流程解析 在嵌入式系统开发中&#xff0c;惯性测量单元(IMU)传感器的集成一直是实现运动感知功能的关键环节。Bosch SMI810作为一款高性能的IMU传感器芯片&#xff0c;集成了单轴陀螺仪和双轴加速度计&…

作者头像 李华
网站建设 2026/4/15 19:53:15

安全工程师实战:如何用Wireshark解密TLS 1.3流量进行应用层协议审计

企业安全运维实战&#xff1a;基于SSLKEYLOGFILE的TLS 1.3流量解密与深度分析指南 当企业安全团队面对加密流量审计需求时&#xff0c;TLS 1.3带来的强加密特性既保障了数据传输安全&#xff0c;也为合规检查设置了技术门槛。本文将分享一种无需服务器私钥的实战方案&#xff0…

作者头像 李华