Ahs*_*taz 9 java jsp file absolute-path
需要在动态Web应用程序内的java类文件中获取绝对路径...
实际上我需要获得apache webapps文件夹的路径...部署webapps的位置
例如/apache-root/webapps/my-deployed-app/WebContent/images/imagetosave.jpg
需要在java类文件中获取它,而不是在jsp页面或任何视图页面上...
有任何想法吗?
Bal*_*usC 12
实际上我需要获得apache webapps文件夹的路径...部署webapps的位置
例如/apache-root/webapps/my-deployed-app/WebContent/images/imagetosave.jpg
正如许多其他答案所提到的,您可以使用ServletContext#getRealPath()将相对Web内容路径转换为绝对磁盘文件系统路径,以便您可以在File或中进一步使用它FileInputStream.该ServletContext是通过继承获得的servlet getServletContext()方法:
String relativeWebPath = "/images";
String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath);
File file = new File(absoluteDiskPath, "imagetosave.jpg");
// ...
Run Code Online (Sandbox Code Playgroud)
但是,文件名"imagetosave.jpg"表示您正在尝试存储上传的图像FileOutputStream.公共webcontent文件夹是存储上传图像的错误位置!无论何时重新部署webapp,或者甚至在服务器重新启动并进行清理时,它们都会丢失.原因很简单,上传的图像根本不包含在待部署的WAR文件中.
您绝对应该在webapp部署文件夹之外寻找另一个位置,作为上传图像的更永久存储,以便在多个部署/重新启动时保持完整.最好的方法是准备一个固定的本地磁盘文件系统文件夹,/var/webapp/uploads并将其作为一些配置设置提供.最后只需将图像存储在那里.
String uploadsFolder = getItFromConfigurationFileSomehow(); // "/var/webapp/uploads"
File file = new File(uploadsFolder, "imagetosave.jpg");
// ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39181 次 |
| 最近记录: |