实际上我需要获取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");// ...
但是 ,文件名“
imagetosave.jpg”表示您正在尝试通过来存储上载的图像
FileOutputStream。公共webcontent文件夹是存储上载图像的
错误 位置!每当重新部署Web应用程序时,甚至清理服务器后,它们都将丢失。原因很简单,上载的图像根本不包含在要部署的WAR文件中。
您绝对应该在webapp部署文件夹 之外
寻找另一个位置,以更永久地存储上载的图像,以便在多次部署/重新启动后,该位置保持不变。最好的方法是准备一个固定的本地磁盘文件系统文件夹,例如,
/var/webapp/uploads并将其提供为某些配置设置。最后,将图像存储在那里。
String uploadsFolder = getItFromConfigurationFileSomehow(); // "/var/webapp/uploads"File file = new File(uploadsFolder, "imagetosave.jpg");// ...



