enctype="multipart/form-data"表单传值问题

最近在写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接受了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值