Play.classloader.getResourceAsStream(filepath);
文件路径-相对于什么?项目根?playframework root?绝对路径?
或者可能Play.classloader.getResourceAsStream的用法是错误的?
发布于 2011-10-04 23:10:59
在Play框架中,"conf“目录位于类路径上,因此您可以将文件放在那里并使用getResourceAsStream打开它。
例如,如果您创建了一个文件"conf/foo.txt“,您可以使用以下命令打开它
Play.classloader.getResourceAsStream("foo.txt");
发布于 2016-10-18 00:00:46
被接受的答案在Play 2.5.x中被弃用,因为对类加载器之类的东西的全局访问正在慢慢被淘汰。处理这个问题的推荐方法是注入一个play.api.Environment
,然后使用它的classLoader
来获取InputStream
,例如
class Controller @Inject()(env: Environment, ...){
def readFile = Action { req =>
...
//if the path is bad, this will return null, so best to wrap in an Option
val inputStream = Option(env.classLoader.getResourceAsStream(path))
...
}
}
发布于 2014-01-23 09:26:39
作为使用conf
目录(应该仅用于与配置相关的文件)的替代方法,您可以使用public
目录并通过以下方式访问它:
Play.classloader.getResourceAsStream("public/foo.txt")
或者在Scala中使用:
Play.resourceAsStream("public/foo.txt")
https://stackoverflow.com/questions/6888343
复制相似问题