解决ImageIo类上传到服务器无法显示的情况

这里就不贴源码了,我们使用Image类创建图片验证码,启动服务,本地测试正常显示,请求服务器上的 不能正常显示。。

主要原因:

主要原因是因为ImageIO需要默认需要有一个文件夹作为缓冲(默认是写入到tomcat/temp文件夹下),而tomcat默认是不会创建temp文件夹的,所以需要我们手动创建temp文件夹。

解决办法:

第一种:

     在tomcat下新建temp目录; 

第二种:

    通过ImageIO.setCacheDirectory(cacheDirectory);设置任意的、存在的缓存目录。

第三种:

   ImageIO默认是使用缓存目录,可以通过ImageIO.setUseCache(false)来设置,更改缓存策略,不使用文件目录缓存,使用内存缓存

第四种:

不使用ImageIO,换成其它JDK方法

ImageIO.write(bi, "jpg", baos);
换成:
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(response.getOutputStream()); 
encoder.encode(image);
  相信上面的方法会对你有帮助!
下面是看到的两个链接

验证码生成、存放的两种方式:

https://blog.csdn.net/buyaoshuohua1/article/details/73612064/

有关 生成图片验证码 链接 :

https://blog.csdn.net/u011637069/article/details/51112187

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值