验证码——ImageIO.write的坑

为什么80%的码农都做不了架构师?>>>   hot3.png

做完了登录,注册后。为了防止恶意的注册行为,又参照网上做了个简单的验证码。没想到我已经掉到了一个坑里。本地显示好好的验证码,扔到服务器上显示不出来,然而监控访问验证码的网络信息 返回的状态码是200 大小为300B。图片本地正常显示是1000B左右。因为返回的服务器状态码是200,而返回图片大小为300B(根本没显示出来)百度网站验证码不显示,根本不是我想要的答案,过了一段时间才找到了一个接近的博客。里面提到tomcat 的Headless mode模式,大概意思是要修改${TOMCAT_HOME}/bin/catalina.sh或${TOMCAT_HOME}/bin/catalina.bat文件才能让tomcat更好的传输图片。博客里只有修改catalina.sh的详细步骤,我们公司服务器上的是windows server要修改就应该是catalina.bat文件,总之前前后后修改各种tomcat配置折腾了两天。今天中午的时候,才开始出现转机,同事给了我另外一个验证码的实现方式(和我的只是稍微有点差异),没有路走了,我只有死马当活马医,实现了一下同事的验证码方式。在本地正常,扔到服务器上报错了,返回状态是500,太棒了,就是这个错误解救了我,查看详细错误信息,can't create output stream百度一下就出来了,原来是ImageIO.write这个坑,我之前一直把疑点放到tomcat配置上,因为我的验证码实现方式服务器返回状态时200。。。 现在看来这个200真的好坑。。。 ImageIO.write 我的报200是因为formatName填的是“PNG”,而同事填的的formatName是“jpg”。。。 最后总结下,这次为什么会这么坎坷: 1这个情况从表面来看,不知道怎么好提问,搜索 2刚好撞到PNG上,报200,然后方向就一直错了下去。

转载于:https://my.oschina.net/xiangban/blog/492958

你可能感兴趣的:(验证码——ImageIO.write的坑)