原创

关于动态获取服务器下图片(显示头像)

这一篇主要记录如何从数据库中获取用户头像信息,并且显示到jsp页面上(img)。一般来说项目中上传的文件都会存放在统一配置的一个文件夹中,这样的话虽然存进去了, 数据库中也保存了相应路径, 但是在jsp页面中访问本项目外的路径却是访问不到的。出现问题总会有解决方法,我们可以使用文件流读取改文件然后输出到页面。

/** 
 * 根据头像地址,读取头像文件 
 *  
 * @param request 
 * @param response 
 * @param path 
 * @author zhangyd-c 
 * @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);  
			}   
			os.flush();   
		} catch (FileNotFoundException e) {  
			e.printStackTrace();  
		} catch (IOException e) {  
			e.printStackTrace();  
		} finally {
			if (in != null) {
				try {
					in.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if (os != null) {
				try {
					os.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}  
}  

 jsp页面img标签src:

<img src="/image/getUserLogo?path=${userInfo.userLogo }" style="width: 73px;height: 73px"/>


正文到此结束