關於圖片不能外鏈的解決方法

SpringMVC項目,imgUrl是圖片地址,通過以下方法,可以顯示圖片

頁面代碼:

<img src="${webPath}/imgPro.shtml?imgUrl=${tm.cover}" />

java Controller類:

@RequestMapping("/imgPro")

public String imgPro(HttpServletRequest request,HttpServletResponse response,String imgUrl)throws IOException {

String newImgUrlMd5 = new String(DigestUtils.md5Hex(imgUrl));
byte[] data =  (byte[]) memcachedClientService.get(newImgUrlMd5);
if(data ==null){
//new一個URL對象
URL url = new URL(imgUrl);
//打開鏈接
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//設置請求方式爲"GET"
conn.setRequestMethod("GET");
//超時響應時間爲5秒
conn.setConnectTimeout(5 * 1000);
//通過輸入流獲取圖片數據
InputStream inStream = conn.getInputStream();
//得到圖片的二進制數據,以二進制封裝得到數據,具有通用性
try {
data = readInputStream(inStream);
memcachedClientService.set(newImgUrlMd5, data);
} catch (Exception e) {
e.printStackTrace();
}
}
ByteArrayInputStream is = new ByteArrayInputStream(data);
BufferedImage  bi1 = ImageIO.read(is);

// 禁止圖像緩存。
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("image/jpeg");
// 將圖像輸出到Servlet輸出流中。
ServletOutputStream out = response.getOutputStream();
ImageIO.write(bi1, "jpeg", out);
return null;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章