enctype='multipart/form-data'
HTML表单是什么意思,什么时候应该使用它?
发出POST请求时,必须以某种方式对构成请求主体的数据进行编码。
HTML表单提供了三种编码方法。
application/x-www-form-urlencoded
(默认)multipart/form-data
text/plain
正在进行添加的工作application/json
,但已被放弃。
(使用HTML表单提交以外的其他方式生成的HTTP请求也可以使用其他编码。JSON是用于Web服务的常见格式,有些仍然使用SOAP。)
格式的细节对大多数开发人员而言并不重要。要点是:
text/plain
。在编写客户端代码时:
multipart/form-data
时,你的形式包括任何<input type="file">
元素multipart/form-data
或,application/x-www-form-urlencoded
但application/x-www-form-urlencoded
会更有效率在编写服务器端代码时:
大多数(例如Perl CGI->param
或PHP的$_POST
superglobal公开的内容)将为您解决这些差异。不要费力尝试解析服务器收到的原始输入。
有时您会发现无法同时处理两种格式的库。Node.js最受欢迎的用于处理表单数据的库是body-parser,它无法处理多部分请求(但具有建议使用某些替代方法的文档)。
如果要编写(或调试)用于解析或生成原始数据的库,则需要开始担心格式。为了您的利益,您可能还想了解它。
application/x-www-form-urlencoded
与URL末尾的查询字符串大致相同。
multipart/form-data
复杂得多,但是它允许整个文件包含在数据中。结果的一个示例可以在HTML
4规范中找到。
text/plain
是由HTML5引入的,仅对调试有用-从规范来看: 它们不能由计算机可靠地解释-而且我认为其他与工具结合使用(例如大多数浏览器的开发人员工具中的“网络面板 ”)更好为了那个原因)。
问题内容: 我想在JavaScript中使用XMLHttpRequest来发布包含文件类型输入元素的表单,以便避免页面刷新并返回有用的XML。 我可以使用JavaScript将表单上的目标属性设置为MSIE的iframe或Mozilla的对象,而无需刷新页面即可提交表单,但这有两个问题。较小的问题是目标与W3C不兼容(这就是为什么我在JavaScript中而不是在XHTML中设置目标)。主要问题是
问题内容: JSF: 1.2 服务器: Weblogic 我正在尝试实现多个文件上传。由于需要支持IE7,因此无法使用HTML5输入文件。因此,我计划添加一个按钮,单击该按钮将在页面中添加一个输入文件。 首先,我开始使用ADF Faces工作。但这没有用。那表现出意想不到的方式。 我还尝试了Tomahawk的文件上传组件,但是问题在于该组件,从后端添加了新文件上传后,以前创建的文件上传字段为空。不
我需要将照片和访问令牌传递给后端REST服务。内容类型 is Multipart/form-data我创建了html表单和操作是esb的endpoint,我已经跟踪了通往ESB[A]和从ESB[B]出去的流量。这似乎幻灯片上的变化,我不知道解决这个问题。当我将捕获的流量发送到ESB[A]时,后端服务会接受它。但是由ESB[B]输出的流量不被后端接受。表示不识别边界中的值。上面写着“价值观是空的”
问题内容: 我一直在尝试使用enctype =“ multipart / form- data”提交表单。我有此设置,因为一旦我确定了用于文本输入的Ajax提交,表单将涉及jpeg / png上传。 当使用html形式的动作引用脚本时,php可以正常工作。 下方的jquery似乎正确检索了表单数据,因为警报行显示:productName = Test + Name&productDescripti
问题内容: 我创建了一个隐藏的表单元素 而且我正在尝试在servlet中通过此行获取值(如我之前所做的那样): 但是我明白了(第33行是上面的行): java.lang.NumberFormatException:null java.lang.Integer.parseInt(未知源)java.lang.Integer.parseInt(未知源)web.objects.UploadImage.do
我必须使用REST API将文件和信息上传到服务器。该API使用多部分形式,但我似乎无法正确使用它。 null 我尝试了几种方法,比如下面的代码,但是我不断从服务器得到错误的请求。