Przeglądaj źródła

解决验证码不能生成失败的问题

Zhu Jiaqi 5 miesięcy temu
rodzic
commit
ca5958a7d9

+ 12 - 0
dtm-admin/src/main/java/com/dtm/web/controller/common/CaptchaController.java

@@ -74,12 +74,24 @@ public class CaptchaController
             capStr = code = captchaProducer.createText();
             image = captchaProducer.createImage(capStr);
         }
+        else
+        {
+            // 如果配置的验证码类型不是"math"或"char",则默认使用"char"类型
+            capStr = code = captchaProducer.createText();
+            image = captchaProducer.createImage(capStr);
+        }
+
+        // 添加空值检查
+        if (image == null) {
+            return AjaxResult.error("验证码生成失败");
+        }
 
         redisCache.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
         // 转换流信息写出
         FastByteArrayOutputStream os = new FastByteArrayOutputStream();
         try
         {
+            assert image != null;
             ImageIO.write(image, "jpg", os);
         }
         catch (IOException e)