关于动态获取服务器下图片吗,用于显示在img的src中(上传头像后显示头像)
这一篇主要记录如何从数据库中获取用户头像信息,并且显示到jsp页面上(img)。
一般来说项目中上传的文件都会存放在统一配置的一个文件夹中,这样的话虽然存进去了, 数据库中也保存了相应路径, 但是在jsp页面中访问本项目外的路径却是访问不到的。
出现问题总会有解决方法,我们可以使用文件流读取改文件然后输出到页面。就和iteye的头像获取类似
Java代码:
/**
* 根据头像地址,读取头像文件
*
* @param request
* @param response
* @param path
* @author zhangyd-c
* @date 2015年5月28日 上午9:21:02
* @return void
* @throws
*/
@RequestMapping("/getUserLogo")
public void getUserLogo(HttpServletRequest request,
HttpServletResponse response, String path) {
response.setContentType("image/jpeg"); // 设置返回内容格式
File file = new File(path); // 括号里参数为文件图片路径
if (file.exists()) { // 如果文件存在
InputStream in;
try {
in = new FileInputStream(file);
OutputStream os = response.getOutputStream(); // 创建输出流
byte[] b = new byte[1024];
while (in.read(b) != -1) {
os.write(b);
}
in.close();
os.flush();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
jsp页面访问该controller:
<img src="/image/getUserLogo?path=${userInfo.userLogo }" style="width: 73px;height: 73px"/>
效果: