DAY18 - 档案处理 - 上传档案前需要知道的FormData

从前端传输档案到後端可以透过两种形式:

  1. base64的格式 (ios, android不支援)
  2. FormData

今天要跟大家介绍的就是FormData是什麽~~

FormData 是什麽?

一种Object,前端传送给後端资料的一种形式。FromData 可以让前端利用 javaScritp 模拟表单来传送资料给後端。

FormData 与 档案处理

FormData的一个特点是可以传送二进制档案(File、Blob),因此可以应用在前端与後端的档案传输。

怎麽建立 FormData

Way1. 透过html的form

<form id="sampleForm">
    <input type="text" >  
</form>
<script>
    const target = document.getElementById('sampleForm');
    let fd = new FormData(target)
</script>

Way2. 透过js建立

let fd = new FormData();

查看FormData的内容

因为FormData基本上就是一个物件,所以会有key,value值

let object = {};
fd.forEach((val, key) => {
  object[key] = val;
});
console.log(object)

如何透过FormData传输档案给後端

step1. 将档案内容加入FormData

因为FormData基本上就是一个物件,所以在传输的时候也是会需要给一组key,value。并且使用append将数值加入FormData。

let blob = 档案内容
let fd = new FormData();
fd.append('name', blob);

step2. 透过API传输给後端时,因为是FormData所以记得把header指定为multipart/form-data(这边以axios为例)

 axios.post(apiUrl, fd, {
  headers: {
    "Content-Type": "multipart/form-data",
  },
}).then((response) => {
    console.log(response);
}).catch((error) => {
    console.log(error);
});

<<:  Day21 - 前处理: 语者正规化

>>:  [Day18]ISO 27001 附录 A.6 资讯安全之组织

Day20 - GitLab CI 更新 Manifest Image Tag

如何建立 Deploy Stage 在 Day15 的教学里,我们透过 Helm Chart 在 K...

DAY 13 资料库-建立并操作Heroku PostgreSQL

Heroku PostgreSQL是一种Heroku提供的PostgreSQL服务,可免费使用,免费...

【设计+切版30天实作】|Day18 - Bootstrap的客制化

大纲 上一篇把环境都建立完成後,今天要来做客制化,但在这之前,先来说明一下为什麽要客制化,以及为什麽...

9/29(三) 制造业资安趋势:永续营业风险大解密线上研讨会

制造业是台湾经济的生力军,疫情延烧并未影响营运,资安事件反而成为不定时炸弹,造成企业商誉甚或营收受损...

Day 24「小步快跑」Service 与单元测试(上)

笔者前阵子蛮喜欢路跑的,但跑了很久,成绩却一直没有明显进步,为此感到因扰。後来有一天,一位朋友跟我说...