要上传档案,你需要知道的事-MIME(1)

MIME 类别 (IANA 媒体类别) - HTTP | MDN


当我们要发 request 时候,我们需要在 header 中设定 Content Type ,告诉对方说“ 嘿! 我送给你的资料是这种类型 ”让对方可以用适合的方式解析处理你所提供的资料,想像一下,要是你不说、乱说一个错误的类型,会发生什麽事? 对方可能对你已读不会、或者无法正确取得,你所提供的资料,这样不是很傻吗?

Content Type 中有个属性 media type,是让你填写所送资料类型,而你必须根据 MIME 格式填写,不可以乱填

什麽是 MIME 媒体类别 ?

MIME 是一种标准,用来表示文件、档案、各种位元组

ex. image/jpg

那 MIME 结构由什麽组成呢?

type/subtype;parameter=value

ex. 
text/plain;charset=UTF-8

主类别、子类别、参数

理解方式第一字是主要类别,第二字是子类别,使用“/”隔开,并不包含区隔,後方可加上参数,提供更多细节,如该如何解析

主要类别 ( type ) 子类别(subtype) 是什麽? 有哪些呢?

type 为广义分类,subtype 则为资料精确类别

主要类别 ( type ) 简介
根据传送资料多种,分为 discrete 单一 and multipart 两个家族

image/jpeg vs multipart/form-data

discrete 单一家族

中文是离散,但可以简单理解为单一资料类型的标注(ex. image/jpg ),适用於单次req只传送单一种类型资料,家族成员如下

  • application 适用多数 二进制资料 (binary data) ex. application/pdf
  • audio 适用音讯类资料 ex. audio/mpeg
  • font 适用各类文字型档案 ex. font/ttf
  • image 适用各种图片行档案 ex. image/jpg
  • model 适用各种模型累资料, 3D object ex. model/3mf
  • text 适用各种人类可阅读之文字资料 ex. text/html
  • video 适用各种影像资料ex. video/mp4

问:万一我就不想送的精确,我想要通用、模糊、概括一点行吗? 可

text/plain 可适用各种文字资料

application/octet-stream 适用各种二进制资料

multipart 家族

当你要一次送多种 MIME Type 就可以使用这家族的主类别

  • message 适用寄信时、大量文字情境 ex. message/partial
  • multipart 适用填表单情境 ex. multipart/form-data

後话

一般常见要填写问卷、上传档案都会用 multipart/form-data ,这也是最近有开到相关api 才来了解这一块der


<<:  Day 09 - Kbars 转换及储存至资料库

>>:  Unity自主学习(十):认识Unity介面(1)

Day 09 Parameters

假如我们想增加的按钮用来清除form的资料,最快的方式是增加一个type=”reset”的按钮,这时...

C# 入门之字典

今天我们将来一起看一下 C# 中的另外一种数据类型:字典。 字典,是一组 key 和 value 的...

Day14 Combine 01 - 简介

Apple 在 WWDC 2019 介绍了全新的 SwiftUI,一个以宣告式结合响应式编程 (FR...

从 IT 技术面细说 Search Console 的 27 组数字 KPI (27.5) :SEO KPI 那个最有价值呢(下)?

强化 导航标记(面包屑):正相关到稍微正相关,全网站都会有的 Schema 强化项目主要是导航标记...

第28天:自订(拆成)自己的Helper辅助功能-FileHelper

我们把昨天的写入档案功能抽成一个独立静态方法,减少Action负责的逻辑,在其他地方若也用到写度档案...