这几天发现修改图片内容,超过两兆之后,就会在mysql相关表保存一条全部为null的数据。
测试发现线下修改新增图片都正常的,就是tomcat上接收不到,一开始我以为是mysql问题,因为线上和线下mysql版本并不一致。字段用的是longtxst,我搜了下不超过4g都可以正常添上去,但是需要设置mysql的配置文件:
max_allowed_packet = 20M //意思就是服务器可接收数据大小
我把它设置成了60M,然后重启,测试修改图片内容,还是不行,修改的图片并没有显示上去。最后我把这个删除了,然后在命令行中查询了一下我的版本默认数据库可接收数据包的大小
select
@@max_allowed_packet;
发现本来默认可接收数据就是60M,多此一举了。看来不是mysql的问题。百度了一下,发现可能是tomcat的serve.xml配置文件中没有设置:
maxPostSize=“104857600” //对参数的大小和长度限制100M,tomcat7.0.63及之后 给maxPostSize设置小于0的值可表示不限制,一般写成-1,tomcat7.0.63以前则必须写成0
修改完毕,我又重新部署了一遍,最后测试............................................................................
疯了,还是没有修改新增图片内容成功。这次我真没辙了。
沉思了良久,还是得弄好,于是又开始了漫长的百度之旅,但是搜来搜去发现就我上面这两种方法。
没办法了,再好好阅读一遍server.xml吧,我有一种直觉,问题可能还是在这里面。
突然我发现了一个很奇怪的地方,就是我下面还有一对<Connector></Connector>标签,里面放着TTPS连接器和下面的主机配置。
然后我把maxPostSize=“104857600” 放到这对标签中,再重新启动,测试功能。
终于,皇天不负有心人,修改新增图片成功!!!!!!
我想,估计是因为tomcat里面配置了好几个项目,而最后这段标签才是放着项目主机,所以最上面的配置映射不到项目中,只有在这段配置上正确参数才有用。
大概是这样吧,太难了,关于tomcat我真的不懂!!!!!!!!!!!!