views:

521

answers:

4

When building HTML forms why do we not always use enctype="multipart/form-data"?

+4  A: 

Because it's a pain to handle, both on the server and in custom clients. Simple is better than complicated, unless simple just doesn't work.

Hank Gay
+13  A: 

multipart/form-data is a lot bulkier than application/x-www-form-urlencoded; the latter is just a bunch of keys and values (and can be parsed the same way whether for GET or POST), whereas the former requires full MIME support, and is thus more useful when you have data that can't simply be represented as key/value pairs.

Chris Jester-Young
A: 

With PHP it doesn't matter what kind o enctype the form had. You always get key/value pairs.

So if harder coding is the only reason not to and you are using PHP, just use enctype="multipart/form-data".

Is there any other reason?

Bruno Cassol
That's *just* PHP. There are more web programming languages in world than only PHP.
BalusC
@BalusC: He said "and you are using PHP". Bruno wasn't talking about other web programming languages.
mattalexx
+1  A: 

Mulipart implicits that we are going to use different mime-types. For example, sending a binary file, you will have one part with the x-www-form-urlencoded part and the other with the octet-stream. Most of the times what you send is from the same mime type.

fabjoa