我正在用java开发一个Web应用程序来控制我的库存并做一些其他事情。我通过JSF组件上传文件。这个文件是图像。无论如何,我的问题是,我希望这些图像存储在Web应用程序的资源文件夹中。更具体地说,在名为“userUploads”的子文件夹中。我创建了一个File对象,但是如何获取表示该路径的String?
答案 0 :(得分:1)
如果您希望将文件存储在“Web应用程序的资源文件夹”中,我猜您的意思是“webroot”中名为“resources”的文件夹。虽然这不是最好的方法,但您可以使用ServletContext
:
ServletContext sc = httpRequest.getSession().getServletContext();
String path = sc.getPath("resources");
或
File file = new File(sc.getPath("resources"))
就个人而言,我建议您在网络应用程序目录之外创建“上传”文件夹,以便在部署期间不会替换它等。
“我创建了一个File对象但是如何获取表示该路径的String?”
如果您有File
个对象,可以调用myFile.getAbsolutePath()
来获取路径的字符串表示。
答案 1 :(得分:0)
执行以下操作:
HttpSession
获取HttpServletRequest
。ServletContext
获取HttpSession
。ServletContext.getRealPath()
方法获取安装的绝对路径。此方法的参数是相对于上下文根的路径。这是一个链接:ServletContext