enctype="multipartform-data"表单传值问题

mac2024-01-25  32

最近在写java企业级开发作业时发现的一个问题: 就是form表单传值的时候 enctype的值设为了multipart/form-data,导致其他input标签的值后台无法获取,这里google了一下记录下来。

先来了解一下为什么会这样

一、application/x-www-form-urlencoded:

表单中的enctype值默认是application/x-www-form-urlencoded,它会将表单中的数据变为键值对的形式 1、action为get,则将表单数据编码加到url后面,中间用?分隔并且&将多个数据连在一起 2、action为post,form数据会被浏览器封装到request body中,然后发送到服务器。

二、text/plain:

表单以纯文本形式进行编码

三、multipart/form-data:

enctpyte设置为multipart/form-data。用于上传的含有非文本内容—图片、txt、MP3等 1、将表单中的数据变成二进制数据进行上传,所以这时候这时如果用request是无法直接获取到相应表单的值的,因为不是键值对噢

如何解决呢???

我采取的是用js代码将input标签中的内容拼接到url上

function formSubmit(){ var action="/img"; action+="?headline="+document.upload.headline.value+"&username="+document.upload.username.value; alert(action); document.upload.action=action; document.upload.submit(); }

这样后台方面就可以用request接受了。

最新回复(0)