springmvc中的文件上传路径
我是一名spring初学者,我正在开发一个应用程序,在该应用程序中,我为用户提供了使用ApacheCommons文件上传上传图像的选项 我对什么应该是文件上传路径感到困惑,我的开发环境是windows,应用程序将部署在Linux环境中 如果我没有指定路径,文件将上载到eclipse安装目录springmvc中的文件上传路径,spring,spring-mvc,Spring,Spring Mvc,我是一名spring初学者,我正在开发一个应用程序,在该应用程序中,我为用户提供了使用ApacheCommons文件上传上传图像的选项 我对什么应该是文件上传路径感到困惑,我的开发环境是windows,应用程序将部署在Linux环境中 如果我没有指定路径,文件将上载到eclipse安装目录 String fileName = multipartFile.getOriginalFilename(); inputStream = multipartFile.getInputStream(); out
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的中使用图像中的路径标记,我通常这样做的方式是在一些属性文件中配置路径,例如
upload.path=/opt/company/uploads
在linux上,路径是正常的。在Windows上,它将转换为C:/opt/company/uploads
,其中C:
是您的驱动器
然后可以从upload.path
属性值生成fileName
。使用文件
或路径
api
File file = new File("/opt/stuff/uploads", multipartFile.getOriginalFilename());
Path path = Paths.get("/opt/stuff/uploads", multipartFile.getOriginalFilename());
只要
multipartFile.getOriginalFilename()
只返回文件名。我通常的做法是在一些属性文件中配置路径,例如
upload.path=/opt/company/uploads
在linux上,路径是正常的。在Windows上,它将转换为C:/opt/company/uploads
,其中C:
是您的驱动器
然后可以从upload.path
属性值生成fileName
。使用文件
或路径
api
File file = new File("/opt/stuff/uploads", multipartFile.getOriginalFilename());
Path path = Paths.get("/opt/stuff/uploads", multipartFile.getOriginalFilename());
只要
multipartFile.getOriginalFilename()
只返回文件名。Hi@Tushar您可以在UNIX或WIN上的任何地方使用属性文件或将路径设置为/your/path/filesystem/
。您可以在上尝试类似的操作。属性:
#PATH
yourvariable=/your/path/filesystem/
您可以从java源代码中读取.properties文件吗
这可以在任何地方分配系统环境
我希望能帮助您:)你好@Tushar您能在UNIX或WIN上的任何地方使用属性文件或将路径设置为
/your/path/filesystem/
。您可以在上尝试类似的操作。属性:
#PATH
yourvariable=/your/path/filesystem/
您可以从java源代码中读取.properties文件吗
这可以在任何地方分配系统环境
我希望能帮助您:)所有操作系统都包括unix和win,都有用户主文件夹,最好在主文件夹中指定应用程序的路径,直接存储在C:中,opt可能会在以后导致可访问性问题。使用:
String userHome = System.getProperty( "user.home" );
并为应用程序指定从主文件夹启动的子文件夹可能是最佳选择。所有操作系统都包括unix和win,都有用户主文件夹,最好在主文件夹中指定应用程序的路径,直接存储在C:中,opt可能会在以后引起可访问性问题。使用:
String userHome = System.getProperty( "user.home" );
并为您的应用程序指定子文件夹,从家中启动可能是最佳选择。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/");
}
应用程序属性
upload.path =/C:/your/path
MvcConfig
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/images/**")
.addResourceLocations("file://" + uploadPath + "/");
registry.addResourceHandler("/static/**")
.addResourceLocations("classpath:/static/");
}
感谢您的回答,当我尝试此操作时,我得到以下异常java.io.FileNotFoundException:\opt\stuff\uploads\chroniclecat100.png(系统找不到指定的路径)@tushar请尝试先创建目录。谢谢,这很有效,但我无法在jsp页面上显示图像。我为此提出了一个单独的问题,如果你能帮助我,那就太好了。感谢您的回答,当我尝试此操作时,我得到以下异常java.io.FileNotFoundException:\opt\stuff\uploads\chroniclecat100.png(系统找不到指定的路径)@tushar请尝试先创建目录。谢谢,这很有效,但我无法在jsp页面上显示图像。我为此提出了一个单独的问题,如果你能帮助我,那就太好了。