form表单的enctype=‘multipart/form-data‘

enctype=‘multipart/form-data‘

HTML forms provide three methods of encoding.

  • application/x-www-form-urlencoded (the default)
  • multipart/form-data
  • text/plain

上传文件的表单中<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才能完整的传递文件数据。

摘自:http://www.cnblogs.com/mumue/archive/2012/05/24/2515984.html

=======================END=======================

时间: 2024-08-11 03:36:20

form表单的enctype=‘multipart/form-data‘的相关文章

C# form表单提交enctype=&quot;multipart/form-data&quot; 与 enctype=&quot;application/x-www-form-urlencoded&quot; 两者之间的区别

1.application/x-www-form-urlencoded GET方式,会将表单中的数据(键值对)经过urlencode编码后追加到url中. POST方式,会将表单中的数据经过urlencode编码后放在request body 中. 2.multipart/form-data 当需要在表单内上传文件时(二进制流数据)时,就需要使用 multipart/form-data. "application/x-www-form-urlencoded",他是默认的MIME内容编码

form 表单添加 enctype =&quot;multipart/form-data&quot; 属性后后台接收中文乱码

解决办法: new String( request.getParameter("title").getBytes("ISO-8859-1"),"utf-8") ISO-8859-1 是你jsp页面默认的编码,一般新建一个jsp页面最顶端可以看到默认编码pageEncoding=

form表单的enctype

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里见过这

表单的enctype=&quot;multipart/form-data&quot;

在通过表单上传文件的时候,需要输入enctype="multipart/form-data" 最早的HTTP POST是不支持文件上传的,给编程开发带来很多问题.但是在1995年,ietf出台了rfc1867,也就是<RFC 1867 -Form-based File Upload in HTML>,用以支持文件上传.所以Content-Type的类型扩充了multipart/form-data用以支持向服务器发送二进制数据.因此发送post请求时候,表单<form&

表单属性enctype=&quot;multipart/form-data&quot;

首先知道enctype这个属性管理的是表单的MIME编码.共有三个值可选:1.application/x-www-form-urlencoded2.multipart/form-data3.text/plain其中application/x-www-form-urlencoded是默认值,作用是设置表单传输的编码.例如我们在AJAX中见过xmlHttp.setRequestHeader("Content-Type","application/x-www-form- urlen

form表单的应用:form对象自带属性和方法及提交时提交的数据.....

1.html中含有form表单 (1)html <form id="picLoad" class="lt" style="width: 230px;" enctype="multipart/form-data"> <label> <div class="upload">上传图片</div> <input id="doc-form-file&qu

form表单,django的form表单,

django的表单系统,分2种, 基于django.forms.Form的所有表单类的父类, 基于django.forms.ModelForm,可以和模型类绑定的Form, 直接用原生的form表单,也可以直接用,较麻烦, django的form表单,也可用可不要, 在views里创建一个类,继承了forms.Form ,每个字段就是一个输入框, #----- #django 的form表单 from django import forms class MyForm(forms.Form): #

Form表单和django的form表单的补充,

form 表单中的button按钮, <button>提交</button>  :放在form表单中,会有一个提交事件,会提交form数据, <input type="button" value="提交">  :是一个单纯的按钮,没有任何默认事件, 先匹配url和视图函数 from django.conf.urls import url from django.contrib import admin from app01 imp

form表单中加上enctype=&quot;multipart/form-data&quot; 在servlet中get parameter(参数)返回空

1.首先说返回为空的问题: 这个我尝试多次才定位问题即使enctype="multipart/form-data"这句话引起的,但是我做的是文件上传必须加这句话. 后来各种百度 SmartUpload smartupload = new SmartUpload(); smartupload.initialize(config, request, response); smartupload.setMaxFileSize(2000000000L);//每个上传文件最大2MB; smart