Java EE Web应用程序文件创建

时间:2011-02-16 21:25:22

标签: java web-applications file-upload java-ee

我正在用java开发一个Web应用程序来控制我的库存并做一些其他事情。我通过JSF组件上传文件。这个文件是图像。无论如何,我的问题是,我希望这些图像存储在Web应用程序的资源文件夹中。更具体地说,在名为“userUploads”的子文件夹中。我创建了一个File对象,但是如何获取表示该路径的String?

2 个答案:

答案 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)

执行以下操作:

  1. HttpSession获取HttpServletRequest
  2. ServletContext获取HttpSession
  3. 使用ServletContext.getRealPath()方法获取安装的绝对路径。此方法的参数是相对于上下文根的路径。
  4. 这是一个链接:ServletContext