这在单元测试中工作正常。我得到文件并可以打印内容。当我在服务器上部署它时,我得到一个 FilenotFoundExcpetion。这可能是什么原因?我正在部署在tomcat上。
String path = "WebContent/images/image.jpeg";
FileSystemResource resource = new FileSystemResource(path);
File image = resource.getFile();
使用上下文路径将位置带到您的工作项目中,然后您可以存储自己的路径,就像您提到的 images/image.jpg
String path = request.getSession().getContextPath().getRealPath("/")+"images/image.jpg";
我想它会帮助你!
当您将 Web 应用程序部署到服务器上时,WebContent 文件夹是隐式的。
在 Web 服务器的上下文中执行时使用 String path = "/images/image.jpeg";
还
使用 Class.getResourceAsStream()
String path = "WebContent/images/image.jpeg";
这是一个相对路径,当部署在像 tomcat 这样的 servlet 容器中时,它将相对于您的部署目录或 tomcat 的主目录。并且您可能不会有一个名为 Webconent 的目录。WebContent 的内容可能会在战争中发生。
我可以想到两个解决方案
getRealPath
如果您有权访问request
或使用方法ServletContext
ClassPathResource
如果您可以将文件放入,请使用WEB-INF\classes