Spring MVC中的文件上传路径

时间:2013-09-18 19:35:36

标签: spring spring-mvc

我是初学者,我正在开发一个应用程序,我可以使用Apache Commons File Upload向用户提供上传图像的选项。

我对应该是什么文件上传路径感到困惑,我的开发环境是windows,应用程序将部署在Linux环境中。

如果我没有指定路径,则将文件上载到eclipse安装目录

String fileName = multipartFile.getOriginalFilename();
inputStream = multipartFile.getInputStream();
outputStream = new FileOutputStream(fileName);

我在某处读取了指定java.io.tmpdir的路径,在这种情况下,它是C:\ Users \ Tushar \ AppData \ Local \ Temp \ for Windows

String filePath = System.getProperty("java.io.tmpdir");

指定路径的正确方法是什么,它可以在windows和linux上工作,我应该直接在jsp&#39中使用image标记中的路径

4 个答案:

答案 0 :(得分:3)

我通常这样做的方法是在某些属性文件中配置路径,例如

upload.path=/opt/company/uploads

在linux上,路径正常。在Windows上,它将转换为C:/opt/company/uploads,其中C:是您的驱动器。

然后,您可以从fileName属性值构建upload.path。使用FilePath api

File file = new File("/opt/stuff/uploads", multipartFile.getOriginalFilename());
Path path = Paths.get("/opt/stuff/uploads", multipartFile.getOriginalFilename());

只要multipartFile.getOriginalFilename()只返回文件名。

答案 1 :(得分:0)

您好@Tushar可以在 UNIX WIN 的任何位置使用属性文件或设置/your/path/filesystem/的路径。你可以尝试这样的东西到.properties:

#PATH
yourvariable=/your/path/filesystem/     

从java源代码可以读取.properties文件

这可以在任何地方分配系统环境。

我希望能帮到你:)

答案 2 :(得分:0)

所有操作系统包括unix和win,有用户主文件夹,最好在主文件夹中指定应用程序的路径,直接存储在C:中,而opt可能会导致以后的访问问题。使用方法:

        String userHome = System.getProperty( "user.home" );

并指定从家中启动的应用程序的子文件夹可能是最佳选择。

答案 3 :(得分:0)

application.properties

upload.path =/C:/your/path

MvcConfig

@Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/images/**")
                    .addResourceLocations("file://" + uploadPath + "/");
            registry.addResourceHandler("/static/**")
                    .addResourceLocations("classpath:/static/");
        }
相关问题