从在jetty中运行的Web应用程序访问本地目录映像

时间:2012-06-21 04:51:06

标签: java jsp servlets jetty

我的Web应用程序是使用jsp / javascripts编写的。后端Java。已经设法实现代码以在webapplication外部保存图像,因为我不想将图像保存在webapp / images文件夹中(因为当服务器关闭时以及重建应用程序时,我丢失了这些保存的图像)。我想要的是从我的网络应用程序再次访问我保存在本地目录中的那些图像,但我不知道如何。如何从jetty服务器访问我的本地文件夹,并且jetty服务器在同一台本地计算机上运行...

1 个答案:

答案 0 :(得分:1)

获取/image存储&存储的路径通过

读取文件
getServletContext().getRealPath("/images");

即使您可以从servlet的外部位置读取文件

    File image = new File("d:\\image\1.jpg");
    response.setBufferSize(DEFAULT_BUFFER_SIZE);
    response.setContentType(contentType);
    response.setHeader("Content-Length", String.valueOf(image.length()));
    response.setHeader("Content-Disposition", "inline; filename=\"" + image.getName() + "\"");

    BufferedInputStream input = null;
    BufferedOutputStream output = null;

    try {
        // Open streams.
        input = new BufferedInputStream(new FileInputStream(image), DEFAULT_BUFFER_SIZE);
        output = new BufferedOutputStream(response.getOutputStream(), DEFAULT_BUFFER_SIZE);

        // Write file contents to response.
        byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
        int length;
        while ((length = input.read(buffer)) > 0) {
            output.write(buffer, 0, length);
        }
    } finally {
        // Gently close streams.
        close(output);
        close(input);
    }

另见