0

我是一名春季初学者,我正在开发一个应用程序,在该应用程序中我为用户提供使用 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 中使用图像标记中的路径

4

4 回答 4

3

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

upload.path=/opt/company/uploads

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

然后,您可以fileNameupload.path属性值构建。使用Fileor Pathapi

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

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

于 2013-09-18T20:30:12.390 回答
0

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

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

并为从家里开始的应用程序指定子文件夹可能是最佳选择。

于 2013-09-18T21:35:11.770 回答
0

嗨@Tushar,您可以使用属性文件或将路径设置为UNIXWIN/your/path/filesystem/上的任何位置。你能在.properties上尝试类似的东西吗:

#PATH
yourvariable=/your/path/filesystem/     

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

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

我希望能帮助你:)

于 2013-09-18T21:23:42.560 回答
0

应用程序属性

upload.path =/C:/your/path

MvcConfig

@Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/images/**")
                    .addResourceLocations("file://" + uploadPath + "/");
            registry.addResourceHandler("/static/**")
                    .addResourceLocations("classpath:/static/");
        }
于 2019-11-10T20:13:09.843 回答