文件上传---FormData格式的传参

时间:2025-05-13 22:04:33

一般前端做  文件导入功能 / 上传功能 的时候会用到Formdata的格式,来上传文件和数据

会比较常用的两种方式:

let formData = new FormData(); // 当前为空

1. 直接表单传值

可以使用来添加键/值对到表单里面;

//传数值
('name', id);
//传文件
('files', file);

2. 后端的多部分传参

和后端接口保持统一,那么可能不全是表单格式的数据, 可能设置的不同的格式,比如文件格式的文件和数据格式的数值,因此需要带格式传过去(new Blob方法)。

//传文件
('file-data', file);
//传数据(元数据格式)
('meta-data',new Blob([(data)], { type: 'application/json' }) )


方法拓展:

1. FormData  对象将数据编译成键值对,以便用XMLHttpRequest来发送数据。其主要用于发送表单数据,但亦可用于发送带键数据key/value,而独立于表单使用。如果表单enctype属性设为 multipart/form-data,则会使用表单的submit()方法来发送数据,从而发送数据具有同样形式。

  (key,value)加数据,如果指定的key不存在则会新增一条数据,如果key存在,则追加到数据末尾.

  (key)  从对象中删除指定键,即 key,和它对应的值,即 value

  (key) 返回一个布尔值,表示该FormData对象是否含有某个key

  (key)方法会返回该 FormData 对象指定 key 的所有值。

2. Blob  表示二进制类型的大对象。在数据库管理系统中,将二进制数据存储为一个单一个体的集合。Blob 通常是影像、声音或多媒体文件。在 JavaScript 中 Blob 类型的对象表示不可变的类似文件对象的原始数据。

  Blob 使用场景: 分片上传,从互联网下载数据,Blob 用作 URL,Blob 转换为 Base64,图片压缩,生成 PDF 文档