html 5 模仿 form 提交file 文件之FormData

兼容IE8的file单文件上传(jquery.form+formdata) 文章链接:https://blog.youkuaiyun.com/spw55381155/article/details/79891297 IE8后台返回json串会弹框要下载,所以要将响应头设置成‘text/html’. 一、HTML //防止表单重复提交,看需求 //高版本只选... 阅读详情

使用xhtr 2 可以实现前端提交 无刷新提交form表单

api 参考mdn : https://developer.mozilla.org/zh-CN/docs/Web/API/FormData/%E5%88%A0%E9%99%A4

文章参考 http://blog.youkuaiyun.com/u014607184/article/details/52372551#comments

使用ajax 请求时 注意
       $.ajax({
          url : this.baseUrl+'updateHead',
          type : 'POST',
          data : formData,
          /**
           * 必须false才会避开jQuery对 formdata 的默认处理
           * XMLHttpRequest会对 formdata 进行正确的处理
           */
          processData : false,
          /**
           *必须false才会自动加上正确的Content-Type
           */
          contentType : false,
          success : function(responseStr) {
            alert("成功:" + JSON.stringify(responseStr));
          },
          error : function(responseStr) {
            alert("失败:" + JSON.stringify(responseStr));
          }
        });
form的处理比较简单  || 在这采用append方法, 不知道为什么 传入form 表单进行构造 fomrData 数据获取不到
        let f = $('#imgForm')[0];
        let formData = new FormData();
        formData.append("file", $("#uploadCom")[0].files[0]);
        formData.append('_token',this.token);
        console.log(formData);
        this.uploadHeader(formData);
最终form 提交的格式如下

这里写图片描述

此时contentType 已变为 mul..

    当然前端进行图片上传时,还可以使用html5 的fileReader api进行上传.依旧是监听Input窗的change 事件
   fileChange(e){
        var files = e.target.files || e.dataTransfer.files
        if (!files.length) return
        this.createImage(files)
      },
      createImage (file) {
        var vm = this
        var reader = null
        var leng = file.length
        for (var i = 0; i < leng; i++) {
          reader = new window.FileReader()
          //todo:// 二进制 与 base64 都可以实现
          reader.readAsBinaryString(file[i])
          reader.onload = (e) => {
            vm.images.push(e.target.result)
            this.uploadImgToServer(vm.images[0])
            window.vm = vm;
          }
        }
      },
    //点击其他按钮时触发  input 的click 事件  input 窗口默认隐藏
        uploadHeadImg(){
        //todo:// 触发file的点击事件
        document.getElementById('uploadCom').click();
      },
    //最后一步 将图片上传到服务器
      uploadImgToServer(imgData){
        this.$http.post(`${this.baseUrl}updateHead`,
          {
            imgData
          }
        ).then((res) => {
          alert('上传头像成功');
        }, () => {

        });
      },
关于ReadApi 的使用可以参考我上篇文章,建议去看mdn
现代前端表单提交:Fetch API与FormData的黄金组合实践 在Web开发中,表单提交是基础且高频的操作,其核心在于客户端与服务器之间的数据交互。传统方式如原生表单提交或jQuery.ajax,常伴随页面刷新与回调地狱问题,影响用户体验与代码维护。现代前端技术通过Fetch API提供了基于Promise的异步请求方案,它支持链式调用与async/await,能更精细地控制请求与响应流程。结合FormData对象,开发者可以轻松构建符合multipart/form-data格式的请求体,尤其简化了文件上传等复杂场景的数据处理。这种组合不仅提升了前端对数据验证、乐观更新 阅读详情

相关推荐

使用Jquery的Ajax异步提交有二进制数据的表单实现方案

1. 用H5的FormData对象来构造表单数据: var form = $("#form")[0]; var formData = new FormData(form); 2.contentType和processData设置为false

开发很忙 9305

axios 表单(formData)方式提交请求,以及文件上传方式

axios 表单(formData)方式提交请求,以及文件上传方式一、使用表单格式请求二、上传文件总结 一、使用表单格式请求 更改请求头 headers 中 content-type 为 application/x-www-form-urlencoded axios 官方文档 application/x-www-form-urlencoded 格式请求 例子: import qs from 'qs'; const data = { 'bar': 123 }; const options = { me

rudy_zhou的博客 5万+

Qt绘图库对决:QWT与QCustomPlot的实战选型指南

本文为Qt开发者提供了QWT与QCustomPlot两大绘图库的实战选型指南。文章从功能特性、性能资源、开发效率三大维度进行深度对比,并结合工业监控、科学计算、嵌入式设备等典型场景,给出了清晰的决策清单。对于需要专业科学图表(如极坐标、等高线图)的场景推荐QWT;对于追求高性能、实时性、快速开发及嵌入式部署的通用图表需求,QCustomPlot是更优选择。

alpha的博客 244

HTML5 FormData 方法介绍

2008年 2 月,XMLHttpRequest Level 2 草案提出来了,相对于上一代,它有一些新的特性,其中 FormData 就是 XMLHttpRequest Level 2 新增的一个对象,利用它来提交表单、模拟表单提交,当然最大的优势就是可以上传二进制文件。看起来跟append() 方法有点类似,这两者的区别就是,当指定的 key 值存在时,append()方法是将新增的添加的所以的键值对最后,而set()方法将会覆盖前面的设置的键值对。如果设置的key值不存在,那么两者的效果是一样的。

2301_76965813的博客 1174

Android Jetpack 最全面试题及参考答案

要使用 WorkManager 定义一个异步任务,以下是详细步骤。首先,需要创建一个继承自 Worker 类的自定义类,这个类代表了要执行的具体任务逻辑。// 在这里编写具体的任务逻辑,比如从网络下载文件try {在上述代码中,doWork方法就是任务的核心执行逻辑所在,这里模拟了从给定的 URL 下载文件到本地的操作,若下载成功返回,若出现异常则返回。然后,在需要调度任务的地方,比如在某个 Activity 或者 Fragment 中,通过构建 WorkRequest 来安排任务执行。

大模型大数据攻城狮的专栏 1899

基于深度学习的三维重建算法——详解与实现

随着深度学习技术的迅猛发展,基于深度学习的三维重建算法在最近几年取得了显著的进展。而基于深度学习的三维重建算法通过利用深度神经网络,能够从大规模数据中学习到更准确、鲁棒的三维结构表示。本文综述了基于深度学习的三维重建算法,并给出了相应的源代码。随着深度学习技术的不断发展,我们相信基于深度学习的三维重建算法将会在未来得到更广泛的应用。实验结果表明,基于深度学习的三维重建算法在准确性和鲁棒性方面取得了显著的提升。以上是关于基于深度学习的三维重建算法的详细介绍与实现,希望对您有所帮助。

CyberGenius的博客 1231

HTML5的Blob,FormData,URL,File接口介绍和使用

Blob对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成 ReadableStream来用于数据操作。

m0_52537576的博客 942

OpenStack 2018 年终盘点

目录 文章目录目录前言OpenStack 一年来的成长NovaCinderNeutronIronicCyborgOctaviaKollaMagnumZunKuryr从 OpenStack 到 OpenInfra 前言 这是最好的时代,也是最坏的时代 — — 查尔斯·约翰·赫芬姆·狄更斯《双城记》 年关将至,闲暇之余,回顾我与 OpenStack 的 2018。 NOTE:仅作为个人见解,与公...

烟云的计算 3597

HTML常用标签之表单form

表单在网页中主要负责数据采集功能。HTML中的标签,就是用于采集用户输入的信息,并且通过标签的提交操作,把采集到的信息提交到服务器端进行处理。

weixin_45604020的博客 1万+

在 SAP ABAP 里可靠地对接 FTP 服务器:从连接、命令到传输与排错的完整实战

本文详细介绍了在SAP ABAP中实现FTP文件交换的完整技术方案。文章首先解析了FTP协议的双连接特性(控制连接与数据连接),强调保持控制连接的重要性。随后详细说明了ABAP中FTP操作的四步标准流程:建立连接(包含HTTP_SCRAMBLE加密)、执行命令、断开连接和关闭RFC通道。文章提供了实战案例代码,演示如何将FTP文件复制到应用服务器再读取进内表处理,特别指出后台作业与前台操作的关键差异。最后总结了常见错误排查要点,包括连接模型、路径设置和资源释放等问题。全文通过SAP标准函数模块的调用顺序、典

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 312

AI:240-YOLOv8高效涨点 |Swin Transformer的主干网络替换与优化(附代码 + 详细修改步骤 +原理介绍)

YOLOv8作为目标检测领域的最新版本,在速度和精度之间取得了良好的平衡。然而,随着计算机视觉任务的复杂性不断增加,YOLOv8的标准主干网络(Backbone)在处理高分辨率图像或多尺度目标时,可能存在一定的局限性。为了进一步提升YOLOv8的性能,我们可以引入Swin Transformer替换其主干网络,以增强模型的全局感知能力和多尺度特征提取能力。本文将详细介绍如何在YOLOv8中用Swin Transformer替换原有的Backbone,提供代码示例,并深入探讨其中的原理和效果。

一键难忘的博客 3961

HTML5 FormData

HTML5 FormData HTML5 FormData 是一个原生 JavaScript API,用于构建表单数据对象,通常与 XMLHttpRequest 和 Fetch API 配合使用,以发送异步请求到服务器。 什么是 HTML5 FormData? HTML5 FormData 提供了一种简单的方式来创建和操作表单数据集,这些数据可以轻松地发送到服务器。它允许您在不触及 DOM 的情况...

gitblog_00005的博客 519

多源异构数据融合(Kaggle+Google Trends联合分析)

本文详细介绍了如何利用Python实现多源异构数据融合,以Kaggle电商销售数据与Google Trends搜索指数为例,展示了数据清洗、预处理、时间对齐、数据合并、相关性分析、回归建模和可视化全过程。数据预处理与内存优化通过分块加载、数据类型转换和缺失值处理,有效降低了大规模数据在内存中的占用,并确保数据质量。时间对齐与数据融合策略采用重采样与内连接方法对齐不同数据源的时间维度,实现了高质量数据的融合,为后续联合分析奠定基础。模型构建与分析。

闲人编程的博客 1019

form表单,formdata对象,实现文件上传

action提交表单时,向何处发送表单数据target在何处打开url_blank在新窗口打开_self在同一个窗口打开默认_parent_topmethod属性以何种方式把表单数据提交到actionurlGET/POSTenctype属性发送表单数据之前如何对数据进行编码——上传图片post......

Yous的博客 3621

KEPServerEX 6 之 EX 6.11.718.0 发布说明

KEPServerEX 6.11.718.0 发布说明

-雲飛兄-博客 2882

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

HTML5 FormData的使用方法

现代WEB应用中频繁使用的一项功能就是表单数据的序列化,XMLHttpRequest 2级为此特地定义了FormDta类型,FormData为序列化表单以及创建与表单格式相同的数据(用于通过XHR传输)提供了便利。 利用 FormData 对象,我们可以通过 JavaScript 用一些键值对来模拟一系列表单控件,我们还可以使用 XMLHttpRequest 的 send() 方法来异步的提

简乐君 6202

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

浅谈HTML5的FormData对象

利用 FormData 对象,可以通过JavaScript键值对来模拟一系列表单控件,还可以使用 XMLHttpRequest的send() 方法来异步提交表单。 与普通的Ajax相比,使用FormData 的最大优点就是可以异步上传二进制文件。   可以先通过new关键字创建一个空的 FormData 对象,然后使用 append() 方法向该对象里添加字段(字段的值可以是一个 Blo

筱葭的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

使用FormData对象AJAX提交文件

FormData对象是html5的一个对象,目前的一些主流的浏览器都已经兼容。 它是一个html5的javascript对象,非常的强大。 FormData可以凭空创建一个对象,然后往这个对象里面添加数据,然后直接提交,不需要写一行html代码,如下: var form = new FormData(); form.append("username","name"); form.append("...

羽筠的博客 329

Form表单提交文件和参数

from表单同时提交文件和参数 1.说明 项目中使用from表单配合ajax同时提交文件和其他的参数,具体实现请看代码 2.前端代码 1.from表单部分 前台提交的是方式是from表单方式,提交内容包括普通的参数和文件 <form action="" class="form-horizontal " id="equipmentTypeform" enctype=” multipart/form-data”/> <input type="text" clas

weixin_45563229的博客 5077

ie8 html5上传,兼容IE8的file单文件上传(jquery.form+formdata)

一、HTML//防止表单重复提交,看需求//高版本只选择.xls或.xlsx二、CSS用定位将文件弹框隐藏在上传按钮之上三、JS(IE10以上用formData,以下用jquery.form.js)//下载地址:http://malsup.com/jquery/form///将字符串转为json,IE10以下用法function strToJson(str){var json = (new Fun...

weixin_30935961的博客 699

form包含file通过ajax上传,通过Ajax方式上传文件(input file),使用FormData进行Ajax请求...

$(function () {$("#btn_uploadimg").click(function () {var fileObj = document.getElementById("FileUpload").files[0]; // js 获取文件对象if (typeof (fileObj) == "undefined" || fileObj.size <= 0) {alert("请选择...

weixin_39832875的博客 555

html input type=file

一、 input type=file与文件上传本文所说的input type=file指的是type类型是file的input元素,最简HTML代码如下:&lt;input type=file&gt;但是,为了习惯,我们多写成:&lt;input type="file"&gt;在HTML5出现之前(XHTML),我们的闭合规则则有些出入:&lt;input type="file" /&gt;顾名思...

u010662647的博客 1万+

ajax上传file文件,form的html对象转成Formdata对象

$.ajax({ url: '${ctx}/ist/etl/fileimp/FileImp.do?method=upload', type: 'POST', cache: false, data: new FormData(form[0]), processData: false, contentType: false...

qq_31450573的博客 1267

AI问答:理解 FormData 和 fd.append(‘file‘, file) / 文件上传 / 多文件上传 / form 表单

本文介绍了JavaScript中FormData对象的使用方法,特别针对文件上传场景。FormData用于构造表单数据,主要步骤包括:创建FormData实例后,用append()方法添加字段(如文件对象),其中'file'为服务器接收参数名。文件可来自<input type="file">或拖放操作,发送时通过fetch或XMLHttpRequest自动处理Content-Type。服务器端需使用multer等中间件接收multipart/form-data数据。关键点包括:浏览器自动处理编码、支持多文件

snow的博客 663

现代前端表单提交:Fetch API与FormData实战指南

在Web开发中,HTTP请求是前后端数据交互的核心机制,其原理基于客户端-服务器模型。随着前端技术的发展,数据提交方式从传统的同步表单刷新演进到异步通信,这显著提升了用户体验和页面性能。从技术价值看,现代JavaScript原生API提供了更简洁、强大的解决方案,尤其适用于构建高效、可维护的Web应用。在实际应用场景中,表单提交涉及多种数据编码格式,如处理简单键值对、文件上传及复杂结构化数据。本文聚焦于Fetch API与FormData对象的结合使用,深入探讨如何利用它们处理multipart/form-

weixin_33802505的博客 330

HTML5、formData移动浏览器上传图片

该上传方法对于不支持html5的浏览器无法使用。主要针对移动浏览器。

striveYan的专栏 1452
上一篇: html5 FileReader使用
下一篇: mac vim 配色方案
一朵红杏
博客等级 码龄12年 51粉丝 282原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值