工作中总会遇到上传图片和显示图片的功能,我介绍一下我回显图片的方法:返回二进制图片
我上传图片至服务器后,会将图片保存到硬盘里,然后在数据库中保存一个硬盘地址,需要回显图片时就使用这个地址找到图片,然后回显。
@PostMapping("/getimg")
@ResponseBody
public void getimg(String address,HttpServletRequest request, HttpServletResponse response) {
FileInputStream fis = null;
OutputStream os = null;
try {
try {
fis = new FileInputStream(address);
}catch(FileNotFoundException e) {
System.out.println(address+"该文件未找到,将替换为默认图片。");
fis = new FileInputStream("E:\moren.jpg");
}
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();
System.out.println("返回图片出现异常");
}finally {
try {
fis.close();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
前端:
<img src="getimg方法?address=硬盘地址">
可以直接写在html中 也可以使用jq等方式给img标签的src属性赋值
这里有一点要注意的 如果你使用的是tomcat8.5.30以上版本的话要给“\”转义
因为在tomcat8.5.30以上的版本中会拦截“\”字符