Для чего используется форма enctype? - PullRequest
2 голосов
/ 24 октября 2011

Для чего используется атрибут enctype с формой?

<form id='injectFormUpload' enctype='multipart/form-data' action='' method='post'>

1 Ответ

6 голосов
/ 24 октября 2011

Используется для указания типа контента, используемого для запроса. В html-формах используются два типа контента: application/x-www-form-urlencoded, который используется по умолчанию, и multipart/form-data, который используется, если форма содержит входные данные для загрузки файлов. В браузере указывается, как отправить запрос на сервер. Например:

<form id="injectFormUpload" action="" method="post">
    <input type="text" name="foo" value="bar" />
    <input type="text" name="foo2" value="baz" />
    <input type="submit" value="OK" />
</form>

при отправке отправит на сервер следующий запрос POST:

POST / HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Content-Type: application/x-www-form-urlencoded 
Content-Length: 16
Connection: keep-alive

foo=bar&foo2=baz

тогда как следующая форма, которая содержит поле загрузки файла:

<form id="injectFormUpload" action="" method="post" enctype="multipart/form-data">
    <input type="text" name="foo" value="bar" />
    <input type="file" name="myfile" />
    <input type="submit" value="OK" />
</form>

может генерировать следующий запрос:

POST / HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Content-Type: multipart/form-data; boundary=---------------------------265001916915724
Content-Length: 326
Connection: keep-alive

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

bar 
-----------------------------265001916915724 
Content-Disposition: form-data; name="myfile"; filename="test.txt" 
Content-Type: text/plain 

contents of the text file
-----------------------------265001916915724--
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...