標籤:
APPLICATION/X-WWW-FORM-URLENCODED MULTIPART/FORM-DATA TEXT/PLAIN 後台返回的資料響應的格式類型
application/x-www-form-urlencoded multipart/form-data text/plain
為什麼上傳檔案的表單裡要加個屬性 enctype 後台返回的資料響應的格式類型
上傳檔案的表單中<form>要加屬性enctype="multipart/form-data",很多人只是死記硬背知道上傳表單要這麼 寫,知其然而不知其所以然。那到底為什麼要添加這個屬性呢?它是什麼意思呢?它又有什麼其他可選值呢? 其實form表單在你不寫enctype屬性時,也預設為其添加了enctype屬性值,預設值是enctype="application/x- www-form-urlencoded".這個屬性管理的是表單的MIME編碼,共有三個值可選:
①application/x-www-form-urlencoded (預設值)
②multipart/form-data
③text/plain
其中①application/x-www-form-urlencoded是預設值,大家可能在AJAX裡見過這 個:xmlHttp.setRequestHeader("Content-Type","application/x-www-form- urlencoded"); 這兩個要做的是同一件事情,就是設定表單傳輸的編碼。在AJAX裡不寫有可能會報錯,但是在HTML的form表單裡是可以不寫 enctype="application/x-www-form-urlencoded"的,因為預設HTML表單就是這種傳輸編碼類別型。而 ②multipart-form-data是用來指定傳輸資料的特殊類型的,主要就是我們上傳的非文本的內容,比片或者mp3等等。 ③text/plain是純文字傳輸的意思,在發送郵件時要設定這種編碼類別型,否則會出現接收時編碼混亂的問題,網路上經常拿text/plain和 text/html做比較,其實這兩個很好區分,前者用來傳輸純文字檔案,後者則是傳遞html代碼的編碼類別型,在發送標頭檔時才用得上。①和③都不能用 於上傳檔案,只有multipart/form-data才能完整的傳遞檔案資料。
上面提到的MIME,它的英文全稱是"Multipurpose Internet Mail Extensions" 多功能Internet 郵件擴充服務,它是一種多用途網際郵件擴充協議,在1992年最早應用於電子郵件系統,但後來也應用到瀏覽器。伺服器會將它們發送的多媒體資料的類型告訴 瀏覽器,而通知手段就是說明該多媒體資料的MIME類型,從而讓瀏覽器知道接收到的資訊哪些是MP3檔案,哪些是Shockwave檔案等等。伺服器將 MIME標誌符放入傳送的資料中來告訴瀏覽器使用哪種外掛程式讀取相關檔案。
簡單說,MIME類型就是設定某種副檔名的檔案用一種應用程式來開啟的方式類型,當該副檔名檔案被訪問的時候,瀏覽器會自動使用指定應用程式來開啟。多用於指定一些用戶端自訂的檔案名稱,以及一些媒體檔案開啟檔案。
瀏覽器接收到檔案後,會進入外掛程式系統進行尋找,尋找出哪種外掛程式可以識別讀取已接收的檔案。如果瀏覽器不清楚調用哪種外掛程式系統,它可能會告訴使用者缺少某 外掛程式,或者直接選擇某現有外掛程式來試圖讀取已接收的檔案,後者可能會導致系統的崩潰。傳輸的資訊中缺少MIME標識可能導致的情況很難估計,因為某些電腦 系統可能不會出現什麼故障,但某些電腦可能就會因此而崩潰。
檢查一個伺服器是否正確設定了MIME類型的步驟是:
1. 在Netscape瀏覽器中開啟伺服器網頁
2. 進入"View"菜單,選擇"Page Info"
3. 在彈出的視窗中點擊上層架構中的"EMBED"
4. 在下層架構中查看MIME的類型是否為"application/x-director"或"application/x-shockwave- flash",如果是上述資訊的話表明伺服器已經正確設定了MIME類型;而如果MIME類型列出的是常值內容、八位一組的資料或是其它形式均表明伺服器 的MIME類型沒有設定正確。
如果伺服器沒有正確標明其發送的資料的類型,伺服器管理員應該正確添加相關資訊,具體操作方法非常簡單快捷。
每個MIME類型由兩部分組成,前面是資料的大類別,例如聲音audio、圖象image等,後面定義具體的種類。
常見的MIME類型
超文字標記語言 (HTML)文本 .html,.html text/html
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
GIF圖形 .gif image/gif
JPEG圖形 .jpeg,.jpg image/jpeg
au音效檔 .au audio/basic
MIDI音樂檔案 mid,.midi audio/midi,audio/x-midi
RealAudio音樂檔案 .ra, .ram audio/x-pn-realaudio
MPEG檔案 .mpg,.mpeg video/mpeg
AVI檔案 .avi video/x-msvideo
GZIP檔案 .gz application/x-gzip
TAR檔案 .tar application/x-tar
Internet中有一個專門組織IANA來確認標準的MIME類型,但Internet發展的太快,很多應用程式等不及IANA來確認他們使用 的MIME類型為標準類型。因此他們使用在類別中以x-開頭的方法標識這個類別還沒有成為標準,例如:x-gzip,x-tar等。事實上這些類型運用的 很廣泛,已經成為了事實標準。只要客戶機和伺服器共同承認這個MIME類型,即使它是不標準的類型也沒有關係,客戶程式就能根據MIME類型,採用具體的 處理手段來處理資料。而Web伺服器和瀏覽器(包括作業系統)中,預設都設定了標準的和常見的MIME類型,只有對於不常見的 MIME類型,才需要同時設定伺服器和客戶瀏覽器,以進行識別。
源:http://www.cnblogs.com/linxiu-0925/p/5380075.html
application/x-www-form-urlencoded ,multipart/form-data, text/plain