ssm 在前臺頁面顯示伺服器中的圖片
阿新 • • 發佈:2018-12-11
先來一段廢話
今天剛弄好檔案上傳,就又想起來了在前臺顯示圖片的問題,百度了很久很久東西。
正題開始
先看controller
@RequestMapping("/readfile.do")
public void doReadFile(HttpServletRequest request, HttpServletResponse response){
try {
//這裡只是為了測試,所以把檔案地址寫死了
FileInputStream pic = new FileInputStream("D:\\pic" + "\\1.jpg");
int i = pic.available();
byte[] date = new byte[i];
pic.read(date);
pic.close();
//這裡要有這個設定,否則會報錯
response.setContentType("img/*");
response.setCharacterEncoding("utf-8");
ServletOutputStream out=response.getOutputStream();
out.write(date);
out.flush();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
JSP
<a href="${pageContext.request.contextPath }/readfile.do">獲取圖片</a>
寫成上面這個樣子的話,點選連結,會把照片下載下來,而且檔名是readfile.do。
如果能下載下來的話,已經是成功了,但是剩下的一點點我花了三四個小時才弄好。
我想要的效果是吧照片顯示在頁面上,但是但這裡只能下載,不知道是因為太簡單了還是怎麼樣,百度出來的那麼多結果都不能解決,最後,還是找到了一個。
<img src="${pageContext.request.contextPath }/readfile.do" >
寫成上面這個樣子就行了,用imp標籤直接訪問後臺。
上傳檔案的時候就是因為打錯了一個字母,顯示個照片又是因為不會這麼用,兩個一下就花了一天,mdzz,真雞兒菜。