問題描述:通常情況下,我們在jsp頁面上要想顯示圖片,直接用html的<img>標籤即可,但是img標籤的src屬性的值爲圖片存放的相對地址。如果圖片文件沒有存放在整個工程中,此時就需要訪問圖片文件的絕對路徑,將圖片直接展現在頁面上。
解決方案:可以通過流的方式展現在頁面上。過程如下:首先通過絕對路徑地址找到文件,然後再將文件以流的方式直接展現在前臺頁面上。
實現代碼:
try {
File file = new File(path);//此處path是圖片的絕對路徑
String filename = file.getName();
InputStream fis = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
response.reset();
// 設置response的Header
response.addHeader("Content-Length", "" + file.length());
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("p_w_picpath/jpeg");
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (IOException ex) {
ex.printStackTrace();
}
舉例:頁面上可以用html的<a>標籤,href屬性值爲servlet方法,然後創建一個servlet,獲取絕對路徑下的此文件,用上述代碼實現,就會以流的形式將圖片展現在頁面<a>標籤處。