Can't create output stream!(没有办法创建输出流)
Can't create cache file!(没有办法创建缓冲文件)
D:\Program Files\Apache\apache-tomcat-8.5.27\temp\imageio5481273428871456221.tmp(没有办法在D:\Program Files\Apache\apache-tomcat-8.5.27\temp文件夹下面生成imageio54812734288713456221.tmp)
解决办法:
一般碰到 Can't create output stream!的问题,看看下面两种情况:
(1)查看我们的tomcat下面没有temp文件夹,因为ImageIO默认使用的缓存目录是tomcat文件夹下面的temp文件夹。
(2)如果有这个文件夹还是无法生成缓存文件,那么大概率可能是没有没有管理员权限造成的无法缓存,D盘需要管理员权限才能创建文件夹。这时可以将tomcat移动到其他盘。
对应的解决方案:(1)手动在tomcat文件夹下创建一个temp文件夹,然后重启Tomcat服务器(默认缓存就存放在temp文件夹下下,没有固然会报错)
(2) 在生成验证码的代码中加入如下代码:ImageIO.setUseCache(false);//不使用文件目录缓存,使用内存缓存
注意:ImageIO默认就是使用的缓存目录,所以这里需要使用上面代码来更改缓存策略
代码如图: