Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
springmvc中的文件上传路径_Spring_Spring Mvc - Fatal编程技术网

springmvc中的文件上传路径

springmvc中的文件上传路径,spring,spring-mvc,Spring,Spring Mvc,我是一名spring初学者,我正在开发一个应用程序,在该应用程序中,我为用户提供了使用ApacheCommons文件上传上传图像的选项 我对什么应该是文件上传路径感到困惑,我的开发环境是windows,应用程序将部署在Linux环境中 如果我没有指定路径,文件将上载到eclipse安装目录 String fileName = multipartFile.getOriginalFilename(); inputStream = multipartFile.getInputStream(); out

我是一名spring初学者,我正在开发一个应用程序,在该应用程序中,我为用户提供了使用ApacheCommons文件上传上传图像的选项

我对什么应该是文件上传路径感到困惑,我的开发环境是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的

中使用图像中的路径标记,我通常这样做的方式是在一些属性文件中配置路径,例如

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您可以在UNIXWIN上的任何地方使用属性文件或将路径设置为
/your/path/filesystem/
。您可以在上尝试类似的操作。属性:

#PATH
yourvariable=/your/path/filesystem/     
您可以从java源代码中读取.properties文件吗

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


我希望能帮助您:)

你好@Tushar您能在UNIXWIN上的任何地方使用属性文件或将路径设置为
/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页面上显示图像。我为此提出了一个单独的问题,如果你能帮助我,那就太好了。