1.近期做了手机端图片上传功能,可以多图上传,原理是将图片转成base64字符串传输到服务器解码
明明前天用谷歌浏览器模拟手机用的时候好好地可以上传
今天在手机上测试怎么也无法上传图片?
发现后台报错,前台参数一个也没过来,都是null
开始以为是前台表单什么的写错了,查了半天,怎么也没用,代码也没有更改过!
2.我继续在谷歌浏览器上监听网络,发现请求头里面参数都是有传递过去的
我换了张前天上传测试的图片发现都能上传
分析,可能是手机拍的相片太大了,转成base64字符串有影响。接着百度post提交参数最大值有没有限制
看了很多回答都是理论上没有限制
然后看到了一篇文章
关于 HTTP GET/POST 请求参数长度最大值的一个理解误区
引用原文的一段话:
POST方法长度限制
理论上讲,POST是没有大小限制的。HTTP协议规范也没有进行大小限制,起限制作用的是服务器的处理程序的处理能力。
如:在Tomcat下取消POST大小的限制(Tomcat默认2M);
打开tomcat目录下的conf目录,打开server.xml 文件,修改
<connector
debug="0"
acceptCount="100"
connectionTimeout="20000"
disableUploadTimeout="true"
port="8080"
redirectPort="8443"
enableLookups="false"
minSpareThreads="25"
maxSpareThreads="75"
maxThreads="150"
maxPostSize="0"
URIEncoding="GBK"
>
增加红色字体部分 maxPostSize="0" (设为0是取消POST的大小限制)
正好我的服务器是tomcat
我按照原文改了server.xml文件
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" maxPostSize="0"/>
确实有用