java - 如何使用位于本地驱动器中的图像文件,将其打印在jsp 页面或servlet 页面中?

标签 java jsp servlets

我想显示位于本地驱动器中的图像。我正在使用 sun java app server 8。例如,如果我动态生成文件 abc.jpg 并将其存储在 c:\abc.jpg 中,那么我如何在 jsp 或 servlet 中使用它?如何在jsp或servlet页面中显示呢? 我知道在编码中给出路径 c:\abc.jpg 以显示图像是行不通的,因为它不在网络服务器中..

最佳答案

基本上只是创建一个Servlet它得到一个 InputStreamFileInputStream 的帮助下并将其写入 OutputStreamHttpServletResponse以及至少包含 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/

相关文章:

java - android.support.v4.util.Pair 与 android.util.Pair

java - 我们可以根据内容更改 log4j 日志记录级别吗

java - 泛型的JSP编译错误

java - 无法初始化类 org.apache.poi.poifs.filesystem.FileMagic

java - 有没有办法从 Java Bean 访问 web.xml 属性?

java - 如何记住之前保存的表单数据以供后续请求

java - 如何使用 Mockito 编写 void 方法的行为?

javascript - javamail.setFrom() 在我的 spring 项目中不起作用

java - CSS 文件不会在 JSP 页面中下载

java - 处理JSP页面、数组列表时发生异常