利用FormData上传本地文件

news2025/2/3 3:45:59

前言

最近接了个小项目,有个用客户端本地文件的需求。

正常这种需求都是前台传文件,后台去解析。

但这次C++的老哥非让我给文件路径,说公司平台有解析文件的能力。

我说web不是桌面端,拿不到真实路径,他还不信😪

最后一顿‘掰头’,还是传文件

本来还是想用element-plus省事,但想到用公司平台做前后台通信也就放弃了

还是用FormData吧!

FormData

FormData 对象是ajax2.0新提出的接口,它将数据编译成键值对,以便用来发送数据。

使用:new一个FormData对象,然后调用它的append()方法来添加字段;

当然, FormData还有其他的方法,这里就不一一介绍了。
FormData对象方法.png

上传文件

首先,我们创建一个input框,用于上传文件并绑定change事件,然后通过change事件拿到文件。

image.png

然后,实例化一个FormData对象, 将文件通过append方法,添加到FormData对象。

最后,将添加好的FormData通过xhr发送到后台。

示例代码

    <input type="file" onchange="upload(event)">

    const upload = function (event) {
        let file = event.target.files[0];
        const formData = new FormData();
        formData.append('file', file);
        
        // xhr发送到后台
        // ...
    }

拓展

在此基础之上,可以拓展一下,将数据(通过 Blob 对象,以及File 对象)转成文件后,再发到后台。

虽然,这么说有点蠢,一般没有人会这么干,但是在上传一些工程文件还是有应用场景的。

至少我用到了,你呢?

结语

本文到此结束,谢谢大家的观看!

如有问题,欢迎各位指正!

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

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

相关文章

已解决1. Downgrade the protobuf package to 3.20.x or lower.

已解决TypeError: Descriptors cannot not be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc > 3.1.0If you cannot immediately regenerate your protos, some other possible worka…

【Ctfer训练计划】——(二)

作者名&#xff1a;Demo不是emo 主页面链接&#xff1a;主页传送门创作初心&#xff1a;舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座右…

kubernetes管理应用配置之ConfigMap和Secret

目录 一、ConfigMap 二、Secret 一、ConfigMap 应用部署的一个最佳实践是将应用所需的配置信息与程序进行分离&#xff0c;这样可以使得应用程序被更好地复用&#xff0c;通过不同的配置也能实现更灵活的功能。 将应用打包为容器镜像后&#xff0c;可以通过环境变量或者外挂文…

【MySQL】3.MySQL表操作

文章目录1.0 MySQL表操作详解1.1 MySQL创建表1.2 MySQL查看表结构1.3 MySQL修改表1.0 MySQL表操作详解 1.1 MySQL创建表 指令:create table table_name(field1 datatype, field2 datatype) character collate engine; 后面三个参数可以省略&#xff0c;MySQL会自动调用默认…

开源绘图神器,Labplot的初步使用

文章目录数据生成图像定制多图绘制Labplot是一款开源且免费的科学绘图软件&#xff0c;除了Windows外&#xff0c;对Linux的Debian、Ubuntu、Fedora等发行版均有着良好的支持。 其下载地址为&#xff1a;LabPlot2下载&#xff0c;安装过程注意选择中文。 数据生成 打开软件后…

新版以太坊Ethereum库ethersV5.0配合后端Golang1.18实时链接区块链钱包(Metamask/Okc)以及验签操作

区块链去中心化思想无处不在&#xff0c;比如最近使用个体抗原自检替代大规模的中心化核酸检测&#xff0c;就是去中心化思想的落地实践&#xff0c;避免了大规模聚集导致的交叉感染&#xff0c;提高了检测效率&#xff0c;本次我们使用Ethereum最新的ethersV5.0以上版本链接去…

XXL-JOB架构篇 - 初识分布式任务调度XXL-JOB

任务调度 一、什么时候需要任务调度&#xff1f; 基于时间的任务 批量数据的处理 异步解耦&#xff08;比如先做任务A&#xff0c;再做任务B&#xff09; 二、任务调度的基本需求有哪些&#xff1f; 可以定义触发的规则&#xff0c;比如基于时刻、时间间隔、表达式。 可以定义…

5G无线技术基础自学系列 | RF优化概述

素材来源&#xff1a;《5G无线网络规划与优化》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 随着5G商用网络的陆续建设&#xff0c;…

疫情抑制珠宝消费增长,珠宝主要市场需求萎缩

一、我国珠宝行业市场规模持续增长 根据观研报告网发布的《2022年中国珠宝行业分析报告-行业现状与发展趋势分析》显示&#xff0c;2021年上半年&#xff0c;中国金饰需求增长强劲&#xff0c;中国金饰消费量在2021年第二季度趋于稳定&#xff0c;使上半年金饰总需求达到338吨…

chatGPT接口,不需要科学上网就可以调用的OPENAI接口

最近很多国产版本的chatGPT出现了 查找了一圈发现调用的openai 的一个接口 测试了一下效果还算可以吧 视频教程 链接: 视频教程 用接口自己写了一个测试的网页 日常使用应该是不成问题 接口整理好了在这&#xff1a; 请求接口&#xff1a; URL:-POST https://api.openai.…

m基于RBF神经网络和BP神经网络的信道估计误码率matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 在无线通信系统中&#xff0c;从发射端发射的信号&#xff0c;经过直射、反射、散射等路径到达接收端。在ofdm系统中&#xff0c;为了获取更好的性能&#xff0c;需要进行信道估计获取信道的状态…

Diffusion Model合集 part1

扩散模型原理介绍1一&#xff0c;条件概率公式与高斯分布的KL散度重参数技巧二&#xff0c;VAE和多层VAE回顾单层VAE的原理公式与置信下界多层VAE的原理公式与置信下界三&#xff0c;Diffusion Model 图示四&#xff0c;扩散过程(Diffusion Process)与VAE的区别&#xff1a;如何…

腾讯云weda低代码让别人能看到发布的应用

我们先登录低代码的平台 腾讯云-控制台 (tencent.com) 我们从创建应用开始讲起&#xff0c;点击新建门户应用&#xff1a; 点击确定 我们先把这个应用发布。 确认发布。 显示出&#xff0c;下面这个已经发布成功后&#xff0c;我们就返回到主页面。 返回主界面&#xff0c;点…

《Docker系列》Docker安装MySQL 5.7

Docker安装MySQL 5.7 一、docker拉取MySQL 5.7镜像 docker pull mysql 拉取最新MySQL docker pull mysql:5.7 拉取指定版本MySQL 1 拉取mysql 5.7镜像 [rootzxy_master ~]# docker pull mysql:5.7 5.7: Pulling from library/mysql d26998a7c52d: Pull complete 4a9d8a356…

JavaWeb之Servelt学习

1.Servlet 概念&#xff1a;运行在服务端的小程序 Servlet就是一个接口&#xff0c;定义了java类被浏览器访问到&#xff08;tomcat识别&#xff09;的规则 将来我们自定义一个类&#xff0c;实现Servlet接口&#xff0c;复写方法 1.1快速入门 1.创建javaEE项目 2.定义类实…

DFS——连通性和搜索顺序(回溯)

文章目录概述连通性问题模板思考迷宫红与黑搜索顺序(回溯)模板思考马走日单词接龙分成互质组总结概述 定义 在深度优先搜索中&#xff0c;对于最新发现的顶点&#xff0c;如果它还有以此为顶点而未探测到的边&#xff0c;就沿此边继续探测下去&#xff0c;当顶点v的所有边都已…

JavaScript刷LeetCode拿offer-滑动窗口

一、前言 《JavaScript刷LeetCode拿offer-双指针技巧》中&#xff0c;简单地介绍了双指针技巧相比较单指针的优点&#xff0c;以及结合 Easy 难度的题目带大家进一步了解双指针的应用。 进入 Medium 难度之后&#xff0c;解题的关键在于如何构造双指针以及确定指针移动的规则…

从 0 开始学 Python 自动化测试开发(二):环境搭建

本文是「从 0 开始学 Python 自动化测试开发」专题系列文章第二篇 —— 环境搭建篇&#xff0c;适合零基础入门的同学。没有阅读过上一篇的同学&#xff0c;请戳主页看上一篇噢。作者方程老师&#xff0c;是前某跨国通信公司高级测试经理&#xff0c;目前为某互联网名企资深测试…

常见管理网络的net命令

目录1 简介2 常用命令2.1 net view2.2 net user2.3 net use2.4 net start2.5 net stop2.6 net share1 简介 net 命令是一种基于网络的命令&#xff0c;该命令包含了管理网络环境、服务、用户、登录等大部分重要的管理功能。 2 常用命令 2.1 net view 作用&#xff1a;显示域…

Spring 之 @Component 和 @Configuration 两者区别以及源码分析

之前一直搞不清 Component 和 Configuration 这两个注解到底有啥区别&#xff0c;一直认为被这两修饰的类可以被 Spring 实例化嘛&#xff0c;不&#xff0c;还是见识太短&#xff0c;直到今天才发现这两玩意有这么大区别。很幸运能够及时发现&#xff0c;后面可以少走点坑&…