日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

html表单 传递 符号,HTML源码中 form 标签的 enctype 属性

發布時間:2025/3/15 HTML 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html表单 传递 符号,HTML源码中 form 标签的 enctype 属性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

定義:enctype 屬性規定在發送到服務器之前應該如何對表單數據進行編碼。默認地,表單數據會編碼為 “application/x-www-form-urlencoded”。即在發送到服務器之前,所有字符都會進行編碼(空格轉換為 “+” 加號,特殊符號轉換為 ASCII HEX 值)。

屬性值:

大家應該清楚在通過POST方式向服務器發送AJAX請求時,需要指定請求頭Content-Type為application/x-www-form-urlencoded編碼類型;表單上傳文件時,需要指定請求頭Content-Type為”multipart/form-data”;純文本傳輸時,為防止接收數據時出現編碼混亂,需要指定請求頭Content-Type為”text/plain”。

以下為三者的區別:

> application/x-www-form-urlencoded

該屬性值是通過表單發送數據時默認的編碼類型,如果未在HTML的from標簽中設置enctype屬性,則默認值就是application/x-www-form-urlencoded。設置該屬性值后,會將表單中發送的數據編碼為“名稱/值”對,這是標準的編碼格式。當表單的Action為POST時,瀏覽器會將表單數據封裝到http請求的body中,然后發送到服務器。當表單的Action為GET時,會將表單中發送的數據轉換成一個字符串(name1=value1&name2=value2),然后把該字符串附加到URL后面,并用?分割,接著就請求這個新的URL。

> multipart/form-data

在向服務器發送大量的文本、包含非ASCII字符的文本或二進制數據時,“application/x-www-form-urlencoded”這種編碼方式效率比較低。因此在文件上傳時,所使用的編碼類型是“multipart/form-data”,它既可以發送文本數據,也支持二進制數據上傳。

瀏覽器端表單的Enctype屬性值設置為multipart/form-data時,則表示傳輸的數據要用到多媒體傳輸協議,由于多媒體傳輸的都是大量的數據,所以規定上傳文件必須是POST方法,的type屬性必須是file。(表單里有圖片上傳也需要設置Enctype=”multipart/form-data”)。如下:

表單標簽中設置enctype=”multipart/form-data”來確保匿名上載文件的正確編碼。如下:

上傳頭像圖片:td>td>

tr>

當表單中有file類型控件時,如果希望它能正常工作,則必須設置Enctype為”multipart/form-data”,此時瀏覽器會將整個表單以控件為單位分割,并為每個部分加上Content-Disposition(form-data或者file),Content-Type(默認為text/plain),name(控件name)等信息,并加上分割符(boundary)。

注:enctype=”multipart/form-data”是上傳二進制數據; form里面的input的值以2進制的方式傳過去。

form里面的input的值以2進制的方式傳過去,所以request就得不到值了。 也就是說加了這段代碼,用request就會傳遞不成功,取表單值加入數據庫時,用到下面的:

//新建一個SmartUpload對象

SmartUpload su = new SmartUpload();

//取數組值

su.getRequest().getParameterValues();

//取單個參數單個值

su.getRequest().getParameter( );

> text/plain

數據以純文本形式進行編碼,其中不含任何控件或格式字符

> 關于”application/x-www-form-urlencoded”和”multipart/form-data”的消息區別

可以看下面的例子:

這是一個表單,有2個表單域:name和email

---------------------------------------------

| field value |

| name: ryan ou |

| email: ryan@rhythmtechnology.com |

---------------------------------------------

在 application/x-www-form-urlencoded 消息中:

//不同的field會用"&"符號連接;空格被替換成"+";field和value間用"="聯系等等

name=ryan+ou&email=ryan@rhythmtechnology.com

在multipart/form-data 消息中:

//每個field被分成小部分,而且包含一個value是"form-data"的"Content-Disposition"的頭部;一個"name"屬性對應field的ID等等

-----------------------------7cd1d6371ec

Content-Disposition: form-data; name="name"

ryan ou

-----------------------------7cd1d6371ec

Content-Disposition: form-data; name="email"

ryan@rhythmtechnology.com

-----------------------------7cd1d6371ec

Content-Disposition: form-data; name="Logo"; filename="D:\My Documents\My Pictures\Logo.jpg"

Content-Type: image/jpeg

總結

以上是生活随笔為你收集整理的html表单 传递 符号,HTML源码中 form 标签的 enctype 属性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。