FormData格式详解

一、概述

FormData是HTML5新增的类型,主要用于提交表单数据,特别是带有文件上传的表单,通过JS中XMLHttpRequest的方式进行数据处理和传递。

通过FormData可以方便地以键值对的方式构建表单数据,并以”Content-Type: multipart/form-data” 格式提交到服务器端,支持字符串、文件等类型数据的传输。

二、FormData对象的创建和使用

创建FormData对象非常容易,只需使用new关键字即可:

var formData = new FormData();

创建好对象后,使用append()方法添加数据:

formData.append("username", "jack");

也可以一次添加多个数据,多次调用append()方法:

formData.append("username", "jack");
formData.append("password", "123456");

三、FormData对象的属性和方法

FormData对象还有以下常用的属性和方法:

1、has(key):判断是否存在某个字段

formData.has("username");

2、set(key, value):设置某个字段的值

formData.set("username", "tom");

3、get(key):获取某个字段的值

formData.get("username");

4、delete(key):删除某个字段

formData.delete("username");

5、entries():返回迭代器对象,包含所有字段(key)和值(value)

var iterator = formData.entries();
var pair = iterator.next();
while(!pair.done){
  console.log(pair.value);
  pair = iterator.next();
}

四、FormData对象常见应用

1、表单的ajax上传

$("form").submit(function(e){
  e.preventDefault();
  var formData = new FormData(this);
  $.ajax({
    url: "http://yourserver.com/upload",
    type: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success: function(response){
      console.log(response);
    }
  });
});

2、单文件上传

<input type="file" id="file-input" />

$("#file-input").change(function(){
  var file = this.files[0];
  var formData = new FormData();
  formData.append("file", file);
  $.ajax({
    url: "http://yourserver.com/upload",
    type: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success: function(response){
      console.log(response);
    }
  });
});

3、多文件上传

<input type="file" multiple id="file-input" />

$("#file-input").change(function(){
  var files = this.files;
  var formData = new FormData();
  for(var i=0; i<files.length; i++){
    formData.append("file[]", files[i]);
  }
  $.ajax({
    url: "http://yourserver.com/upload",
    type: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success: function(response){
      console.log(response);
    }
  });
});

五、总结

FormData是一种非常方便的数据格式,可以处理多种类型的数据,尤其适用于表单的AJAX上传和文件上传等场景。

原创文章,作者:NRVRC,如若转载,请注明出处:https://www.506064.com/n/361048.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
NRVRCNRVRC
上一篇 2025-02-24 00:34
下一篇 2025-02-24 00:34

相关推荐

  • 如何在Java中拼接OBJ格式的文件并生成完整的图像

    OBJ格式是一种用于表示3D对象的标准格式,通常由一组顶点、面和纹理映射坐标组成。在本文中,我们将讨论如何将多个OBJ文件拼接在一起,生成一个完整的3D模型。 一、读取OBJ文件 …

    编程 2025-04-29
  • 如何将视频导出成更小的格式给IT前端文件

    本文将从以下几个方面介绍如何将视频导出成更小的格式,以便于在IT前端文件中使用。 一、选择更小的视频格式 在选择视频格式时,应该尽可能选择更小的格式,如MP4、WebM、FLV等。…

    编程 2025-04-28
  • JavaScript中使用new Date转换为YYYYMMDD格式

    在JavaScript中,我们通常会使用Date对象来表示日期和时间。当我们需要在网站上显示日期时,很多情况下需要将Date对象转换成YYYYMMDD格式的字符串。下面我们来详细了…

    编程 2025-04-27
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • C语言贪吃蛇详解

    一、数据结构和算法 C语言贪吃蛇主要运用了以下数据结构和算法: 1. 链表 typedef struct body { int x; int y; struct body *nex…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25

发表回复

登录后才能评论