3 回答
TA贡献1818条经验 获得超3个赞
您可以ServletContext#getRealPath()用来将相对Web内容路径转换为绝对磁盘文件系统路径。
String relativeWebPath = "/WEB-INF/static/file1.ext";
String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath);
File file = new File(absoluteDiskPath);
InputStream input = new FileInputStream(file);
// ...
但是,如果你的唯一目的是为了得到一个InputStream出来,更好的使用ServletContext#getResourceAsStream(),而不是作为getRealPath()可能返回null每当战争不是扩大本地磁盘上的文件系统(Tomcat的默认完成,但可配置,不这样做!):
String relativeWebPath = "/WEB-INF/static/file1.ext";
InputStream input = getServletContext().getResourceAsStream(relativeWebPath);
// ...
毕竟,这比该java.io.File方法更健壮。
TA贡献1744条经验 获得超4个赞
你可以试试这个
String relativeWebPath = "WEB-INF/static/file1.ext";
InputStream input = getServletContext().getResourceAsStream(relativeWebPath);
TA贡献1831条经验 获得超4个赞
我更喜欢使用getResourceaAsStream选项基于父目录加载资源。
getClass().getClassLoader().getResourceAsStream("/MY_STATIC_FOLDER/file1");
- 3 回答
- 0 关注
- 426 浏览
添加回答
举报