您的位置:首页 > 其它

基于base64位编码上传图片POST提交值得注意的地方

2017-04-01 14:23 302 查看
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"/>

确实有用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息