我想显示位于本地驱动器中的图像。我正在使用 sun java app server 8。例如,如果我动态生成文件 abc.jpg 并将其存储在 c:\abc.jpg 中,那么我如何在 jsp 或 servlet 中使用它?如何在jsp或servlet页面中显示呢? 我知道在编码中给出路径 c:\abc.jpg 以显示图像是行不通的,因为它不在网络服务器中..
最佳答案
基本上只是创建一个Servlet
它得到一个 InputStream
在 FileInputStream
的帮助下并将其写入 OutputStream
的 HttpServletResponse
以及至少包含 content-type
的一组正确的响应 header .最后在 src
中调用这个 servlet <img>
的属性元素连同文件标识符作为请求参数或路径信息。例如:
File file = new File("c:/abc.jpg");
response.setContentType(getServletContext().getMimeType(file.getName()));
response.setHeader("Content-Length", String.valueOf(file.length()));
response.setHeader("Content-Disposition", "inline; filename=\"" + file.getName() + "\"");
BufferedInputStream input = null;
BufferedOutputStream output = null;
try {
input = new BufferedInputStream(new FileInputStream(file));
output = new BufferedOutputStream(response.getOutputStream());
byte[] buffer = new byte[10240];
int length;
while ((length = input.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
} finally {
if (output != null) try { output.close(); } catch (IOException logOrIgnore) {}
if (input != null) try { input.close(); } catch (IOException logOrIgnore) {}
}
您可以在这里找到完整的基本示例:http://balusc.blogspot.com/2007/04/imageservlet.html
关于java - 如何使用位于本地驱动器中的图像文件,将其打印在jsp 页面或servlet 页面中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2000523/