gpt4 book ai didi

playframework - Play Framework 获取 Assets 服务器端

转载 作者:行者123 更新时间:2023-12-02 03:30:28 25 4
gpt4 key购买 nike

这看起来应该非常容易,但我想不通。我需要从应用程序服务器端的/public 文件夹中获取文件。我可以毫无问题地使用 javascript 或 html 获取它们。我用的是Java,玩2.2.1

我试过把这个弄乱

Assets.at("/public", "images/someImage.png");

但我不确定如何将该 Action 对象转换为 File 对象。

最佳答案

'public' 文件夹可能不会存在于部署环境中的文件系统中(使用 $ activator stage ),因为 Assets 被打包到位于 target/universal/stage/lib/<PROJECT_NAME>-assets.jar 的 .jar 文件中.

因此,据我所知,不可能将 java.io.File 实例获取到该位置。

但是,这是我想出的读取文件字节的方法(并将它们转换为字符串 - 这正是我需要的):

SomeController.java

private String getSomeFile() throws IOException {
InputStream in = null;
ByteArrayOutputStream out = null;

try {
in = Play.application().resourceAsStream("public/some/file.txt");
out = new ByteArrayOutputStream();
int len;
byte[] buffer = new byte[1024 * 16];

while ((len = in.read(buffer)) >= 0) {
out.write(buffer, 0, len);
}

return new String(out.toByteArray(), "utf-8");
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) { /* ignore */ }
}
if (out != null) {
try {
out.close();
} catch (IOException e) { /* ignore */ }
}
}
}

注意:我使用的是 Play 2.3.7。我不确定这是否适用于 2.2.1。

希望这对任何人都有帮助。

关于playframework - Play Framework 获取 Assets 服务器端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27115924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com