现在遇到一个问题,就是java中显示图片,用的是流读取图片,现在遇到问题是,用户打开页面,并且流正在读取图片,这时用户关闭了浏览器,流就中断了,抛出异常,这时无法关闭流,当访问量大了后就会内存溢出.请问大家显示本地图片用的是什么方法.我贴出我的代码,大家看看有没有什么问题.
/**
* 本地图片回显
*
* @param response
* @return
*/
@RequestMapping(value = "/showPic")
@ResponseBody
public String showPic(String fileName, HttpServletResponse response) {
try (FileInputStream fis = new FileInputStream(pan + fileName);
OutputStream os = response.getOutputStream();) {
int count = 0;
byte[] buffer = new byte[1024 * 8];
while ((count = fis.read(buffer)) != -1) {
os.write(buffer, 0, count);
os.flush();
}
} catch (Exception e) {
e.printStackTrace();
}
return "ok";
}
/**
* 本地图片回显
*
* @param response
* @return
*/
@RequestMapping(value = "/showPic")
@ResponseBody
public String showPic(String fileName, HttpServletResponse response) {
try (FileInputStream fis = new FileInputStream(pan + fileName);
OutputStream os = response.getOutputStream();) {
int count = 0;
byte[] buffer = new byte[1024 * 8];
while ((count = fis.read(buffer)) != -1) {
os.write(buffer, 0, count);
os.flush();
}
} catch (Exception e) {
e.printStackTrace();
}
return "ok";
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货