在Java文件中指定相对路径
我正在使用Spring和Hibernate上传图像。我正在服务器上保存图像,如下所示在Java文件中指定相对路径,java,image,Java,Image,我正在使用Spring和Hibernate上传图像。我正在服务器上保存图像,如下所示 File savedFile = new File("E:/Project/SpringHibernet/MultiplexTicketBooking/web/images/" + itemName); item.write(savedFile); 其中,itemName是解析请求后的图像文件名(enctype=“multipart/form data”)。但是,我需要提到文件的构造函数中的相对路径。如下图所
File savedFile = new File("E:/Project/SpringHibernet/MultiplexTicketBooking/web/images/" + itemName);
item.write(savedFile);
其中,itemName
是解析请求后的图像文件名(enctype=“multipart/form data”
)。但是,我需要提到文件的构造函数中的相对路径。如下图所示
File savedFile = new File("MultiplexTicketBooking/web/images/" + itemName);
item.write(savedFile);
但是抛出FileNotFoundException
无效。在Java中,是否有方法使用文件指定相对路径?您可以使用文件指定绝对路径和相对路径。可以抛出FileNotFoundException
,因为文件夹可能在那里。首先尝试使用中的mkdirs()
方法创建所需的文件夹结构,以便将文件保存到要保存的位置。您可以使用以下命令获取项目的路径-
File file = new File("");
System.out.println("" + file.getAbsolutePath());
因此,您可以有一个常量
或属性
文件,在该文件中,您可以在相对路径之后定义路径,即MultiplexTicketBooking/web/images/
您可以使用从文件.getAbsolutePath()
获得的路径附加路径,这将是文件的真实路径。-file.getAbsolutePath()+MultiplexTicketBooking/web/images/
确保项目路径后的文件夹存在,即MultiplexTicketBooking/web/images/
。尝试从程序打印工作目录
String curDir = System.getProperty("user.dir");
给你那个目录。然后检查该目录中是否存在目录MultiplexTicketBooking/web/images/
无法统计我对当前目录的误解次数,并且花了一些时间查找我写入的文件…服务器似乎应该提供方法或目录中可能看到的功能。基于这些与服务器相关且可复制的路径类型构建路径是常见的。不要使用像user.dir
这样的东西,这在服务器上几乎没有意义
更新
与其使用“\\”
,我倾向于用以下内容替换它,这将导致为每个平台使用正确的文件分隔符。当客户端决定将基于MS/ISS的服务器换成Linux/Tomcat堆栈时,保持跨平台兼容性
有关详细信息,请参阅。我做了如下操作ServletContext sc=request.getSession().getServletContext()
File savedFile=新文件(sc.getRealPath(“images”)+“\\\”+itemName)代码>并且它正在工作。谢谢。@AndrewThompson-假设我的路径是网络服务器上的\\ADMIN\keyur\Workspace\B2B解决方案\WebContent\product\u images
,我需要使用什么?
ServletContext sc=request.getSession().getServletContext();
File savedFile = new File(sc.getRealPath("images")+"\\" + itemName);
File savedFile = new File(sc.getRealPath("images"), itemName); //note the ','