繁体   English   中英

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

[英]how to use the image file located in local drive, for printing it in jsp page or servlet page?

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

基本上只需创建一个Servlet ,在FileInputStream帮助下获取它的InputStream ,并将其写入HttpServletResponseOutputStream以及至少包含content-type的正确响应头集。 最后在<img>元素的src属性中调用此servlet以及文件标识符作为请求参数或pathinfo。 例如:

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

也许每个人都误解了这个问题。

如果图像位于本地驱动器上,并且您希望Web服务器向世界提供服务,那么首先需要将它们上载到Web服务器。

完成后,您可以使用<img>标记中的URL来引用它们在服务器上的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM