【问题标题】:Access local directory image from web app running in jetty从在 jetty 中运行的 Web 应用程序访问本地目录图像
【发布时间】:2012-06-23 07:19:10
【问题描述】:

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

【问题讨论】:

    标签: java jsp servlets jetty


    【解决方案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);
        }
    

    另见

    【讨论】:

    • 可以说我的图像位于 D:/images 文件夹中,并且我在同一台机器上运行码头服务器。如何访问我的本地文件夹 (D:/images)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 2011-08-09
    • 2017-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-04
    相关资源
    最近更新 更多