enctype
屬性通過MIME類型指定表單數據在請求中的編碼方式。我知道的兩個有效的enctypes是application/x-www-form-urlencoded
和multipart/form-data
。
在引擎蓋下,當您指定沒有類型時,您會得到application/x-www-form-urlencoded
。這表明發送請求時,瀏覽器將以與將它作爲GET參數發送時相同的方式對錶單數據進行編碼:請求主體看起來像foo=bar&bar=baz&frob=this%20has%20four%20words
。雖然完全適用於文本字段,但對於文件傳輸而言,這種表示方式非常尷尬,特別是對於二進制文件而言,可能會增大三倍。爲了避免這種情況發生,使用application/x-www-form-urlencoded
發送文件是不可能的。
multipart/form-data
另一方面導致非常不同的表示。我不記得確切的細節,但表單中的每個輸入字段都可以具有不同的MIME類型和編碼。這意味着您的瀏覽器可以將二進制文件與表單數據一起輕鬆發送到網站。但是,請求的一般結構會產生相對較大的開銷,因此只有在必要時(即,當您想發送文件時)才應該使用它。
所以,是的,設置enctype="mutlipart/form-data"
仍然會讓你有固定的領域。他們只會以另一種方式表現出來,但這對你來說是完全透明的。
你試過嗎? – djdy