关于动态获取服务器下图片吗,用于显示在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"/>
效果: