在Web上显示位于主目录中的图像

时间:2014-08-16 11:31:14

标签: image tomcat spring-mvc nginx upload

我的项目是在Spring MVC中,运行tomcat7和nginx。 我将用户添加的所有多媒体上传到/ home / multimedia。

我想从那里向用户展示多媒体。我该怎么办?

我找到了PHP的解决方案,但它没有回答我的问题。

Reading / Using files in the server /home/ folder

2 个答案:

答案 0 :(得分:1)

你可以去两条路线。第一个开销最小。如果需要可配置的位置,第二个更方便。

1。使用Nginx

提供静态文件

为目标目录创建别名。

location /media {
    alias /home/multimedia;
    expires 1y;
}

2。使用Spring MVC

提供静态文件

您可以使用指向文件系统上该目录的Spring MVC配置静态资源。

使用Java配置:

@Configuration
public class ServletConfig extends WebMvcConfigurationSupport {
    @Override
    protected void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/media/**")
                .addResourceLocations("file:/home/multimedia/")
                .setCachePeriod(31556926);
    }
}

或者例如XML配置的调度-servlet.xml中

<mvc:resources location="file:/home/multimedia" mapping="/media/**" cache-period="31556926" />

答案 1 :(得分:0)

从磁盘读取图像并使用核心java保存在BufferedImage中的代码

public BufferedImage savetiff(File srcFilePath) throws IOException {
        FileSeekableStream stream = new FileSeekableStream(srcFilePath);
        TIFFDecodeParam decodeParam = new TIFFDecodeParam();

        decodeParam.setDecodePaletteAsShorts(true);
        ParameterBlock params = new ParameterBlock();

        params.add(stream);
        RenderedOp image1 = JAI.create("tiff", params);
        BufferedImage img = image1.getAsBufferedImage();

        return img;
}