生成验证码时,验证码图片不显示,报错信息如下:Can‘t create output stream;Can‘t create cache file

登录验证时,验证码不显示,解决办法如下:

今天写了一个简单的demo,测试使用验证码登录验证,遇到了一个问题,验证码不显示,浏览器显示页面如下(简单测试,页面就随便写了一个)

浏览器显示界面如下(验证码无法显示):

 报错信息如下:

错误日志1:

 错误日志2:

 错误日志3:

错误总结下来大概就是下面三个:

  • Can't create output stream!(没有办法创建输出流)
  • Can't create cache file!(没有办法创建缓冲文件)
  • D:\Program Files\Apache\apache-tomcat-8.5.27\temp\imageio5481273428871630221.tmp(没有办法在D:\Program Files\Apache\apache-tomcat-8.5.27\temp文件夹下面生成imageio5481273428871630221.tmp)


一般碰到 Can't create output stream!的问题,看看下面两种情况:

(1)查看我们的tomcat下面没有temp文件夹,因为ImageIO默认使用的缓存目录是tomcat文件夹下面的temp文件夹。

(2)如果有这个文件夹还是无法生成缓存文件,那么大概率可能是没有没有管理员权限造成的无法缓存,D盘需要管理员权限才能创建文件夹。


对应的解决方案:

(1)手动在tomcat文件夹下创建一个temp文件夹,然后重启Tomcat服务器(默认缓存就存放在temp文件夹下下,没有固然会报错)

  (2) 在生成验证码的代码中加入如下代码:ImageIO.setUseCache(false);//不使用文件目录缓存,使用内存缓存

注意:ImageIO默认就是使用的缓存目录,所以这里需要使用上面代码来更改缓存策略

我的代码如图:


 

更改后的结果如下:

希望对你有帮助,加油骚年!

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值