<%@ 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:\image\1.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="\image\1.jpg" /> 正常顯示圖片
希望自己的錯誤經驗能夠幫助給大家!
