java接收图片并上传(接收)

enctype属性

我们平常在使用form表单时会有一个enctype属性,其默认是application/x-www-form-urlencoded

w3c对这个编码的定义是空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值,http服务器是使用ASCII编码传输数据的,其数据是按照key1=val1&key2=val2 的方式进行编码,后端request.getparameter(key)就可以获取值了,也是最常用的。

其次我们看看text/plain

空格转换为 "+" 加号,但不对特殊字符编码,也就是说是传送纯文本,完全不会转义。

最后也是最重要的,multipart/form-data

我们上传图片必须要使用这个编码,如果不设置的话,会无法接收到图片,而这个的定义是不对字符进行编码,所以可以理解成原样传送。

这里使用默认的application/x-www-form-urlencoded接收数据时会接受不到图片,当你写入到文件时,会发现文件是空的,也就是说,输入流里面并没有接收到图片,所以这时就需要使用multipart/form-data。这样的话就会在输入流里接收到并且可以写入到文件

另外这里还有一个问题就是当设置为multipart/form-data,在接收其他参数时会有问题,比如输入姓名,由于没有进行编码,相当于直接传过来了二进制数据,那么后台也当然无法获取到,这里后台也有方法可以解决,具体的代码在后面的博客会写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值