驗證碼——ImageIO.write的坑

作完了登陸,註冊後。爲了防止惡意的註冊行爲,又參照網上作了個簡單的驗證碼。沒想到我已經掉到了一個坑裏。本地顯示好好的驗證碼,扔到服務器上顯示不出來,然而監控訪問驗證碼的網絡信息 返回的狀態碼是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,而後方向就一直錯了下去。windows

相關文章
相關標籤/搜索