问题描述:通常情况下,我们在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>标签处。
转载于:https://blog.51cto.com/florait/1600514