一尘不染

如何使用本地驱动器中的图像文件在jsp页面或servlet页面中进行打印?

jsp

我想显示本地驱动器中的图像。我正在使用Sun Java App Server8。例如,如果我动态生成文件abc.jpg并将其存储在c:\
abc.jpg中,那么如何在jsp或servlet中使用它?如何在jsp或servlet页面中显示它?我知道在编码中提供路径c:\
abc.jpg不能显示图像,因为它不在网络服务器中。


阅读 244

收藏
2020-06-10

共1个答案

一尘不染

基本上只需要创建一个Servlet它获取的InputStream它与帮助FileInputStream,并将其写入到OutputStreamHttpServletResponse一个正确设定的响应头与至少一起content- type。最后src,在<img>元素的属性中将此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) {}
}
2020-06-10