在jsp页面<img/>标签引用本地路径下的图片,图片不会显示,需要在tomcat中配置虚拟路径

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>

</head>
<body>
<div>

  你好,<img src="E:image1.jpg" />
</div>

</body>
</html>

这段代码运行后图片不会显示,只会显示文字。而放在html文件中图片可以正常显示,找了很久错误才知道在jsp页面<img/>标签引用本地路径下的图片,图片不会显示

解决方案:需要在Tomcat中配置虚拟路径。如下图

对应的后台代码:

/**
* 上传图片
* @param uploadFile
* @param cmsDesc
* @return
*/
@RequestMapping(value="/content/pic/upload")
@ResponseBody
public Map uploadFile(MultipartFile uploadFile){
try {
//获取图片完整名称
String fileStr = uploadFile.getOriginalFilename();
//使用随机生成的字符串+原图片扩展名组成新的图片名,防止图片重名。
String newfileName = UUID.randomUUID().toString()+fileStr.substring(fileStr.lastIndexOf("."));
//上传图片保存的路径,硬盘路径
String realPath = "E:\image\"+newfileName;

uploadFile.transferTo(new File(realPath));

//数据库中保存的图片路径和页面回显的路径(Tomcat中的虚拟路径)
String path = "/image/"+newfileName;                     注:此处建议写成“/”不要写成“”;防jsp页面误将“\”的第一个“”认为根目录而非转义字符。
//将图片名称,名称保存到数据库
UeditorResource ur = new UeditorResource();
ur.setId(UUID.randomUUID().toString());
ur.setFilename(newfileName);
ur.setFileurl(path);
ur.setCreated(new Date());
ur.setUpdated(new Date());

ueditorResourceService.uploadFile(ur);
//响应上传图片的路径,用于jsp页面回显图片
Map result = new HashMap<>();
result.put("error", 0);
result.put("url", path);
return result;
} catch (Exception e) {
e.printStackTrace();
//响应上传图片的路径
Map result = new HashMap<>();
result.put("error", 1);
result.put("message", "图片上传失败");
return result;
}

}
}

jsp页面:

<img src="image1.jpg" />    正常显示图片

希望自己的错误经验能够帮助给大家!

原文地址:https://www.cnblogs.com/zhaochi/p/7505954.html