最近项目中需要用到IO流来读取图片以提供前台页面展示,由于以前一直是用url路径的方式进行图片展示,一听说要项目要用IO流读取图片感觉好复杂一样,但任务下达下来了,做为程序员只有选择去执行喽,于是找了点资料看了会api,
嘿感觉挺简单的,由于是第一次采用IO流的方式进行读取图片供页面显示,所以把以下代码记录一下
后台代码:
-
<span style="white-space:pre"> </span>
-
-
-
-
@RequestMapping(value = "/IoReadImage/{imgName}", method = RequestMethod.GET)
-
public String IoReadImage(@PathVariable String imgName,HttpServletRequest request,HttpServletResponse response) throws IOException {
-
ServletOutputStream out = null;
-
FileInputStream ips = null;
-
try {
-
-
String imgPath = Constans.FOLDER_IMAGE + imgName;
-
ips = new FileInputStream(new File(imgPath));
-
response.setContentType("multipart/form-data");
-
out = response.getOutputStream();
-
-
int len = 0;
-
byte[] buffer = new byte[1024 * 10];
-
while ((len = ips.read(buffer)) != -1){
-
out.write(buffer,0,len);
-
}
-
out.flush();
-
}catch (Exception e){
-
e.printStackTrace();
-
}finally {
-
out.close();
-
ips.close();
-
}
-
return null;
-
}
前台代码 - 方式一:
-
<span style="white-space:pre"> </span><div style="float: left;">
-
<#--${model.userDatil.photo} 为数据库存放的文件名称-->
-
<img src="${ctx}/userInfo/IoReadImage/${model.userDatil.photo}" id="npcImg" width="125" height="148"/>
-
<input type="hidden" id="photo" name="photo"/>
-
</div>
js代码 - 方式二:
-
var npcName = $('#npcImg').data('val');
-
var img = document.getElementById("npcImg");
-
img.src = '/userInfo/IoReadImage/'+npcName;
jQuery代码 - 方式三:
-
<span style="white-space:pre"> </span>$('#npcImg').attr('src','/userInfo/IoReadImage/'+npcName);
好了就这么简单,前台就可以显示图片了,总共才几句代码,就不额外注释说明了
原文出处:
[1] 江西DJ烟仔ReMix, java IO流读取图片供前台显示, http://blog.csdn.net/u014598014/article/details/70232854