Play Framework Java - 显示存储在本地服务器上的 htm 文件
Play Framework Java - Display htm file stored on local server
你好 Whosebug 社区!
我正在使用 Play Framework 2.1.1 使用 Java。
理想情况下,当用户单击顶部菜单(由导航栏定义)中的 link 时,他会被重定向到存储在内部服务器中的文件。文件路径类型为“file:///R:/PUBLIC/Name/myfile.htm”,文件包含图片
不幸的是,这不起作用(当我单击打开一个空白页面时,标题为 "unknown")而且我真的不明白为什么......我没有错误,只是空白页面。
这是顶部菜单中的link:
<li><a href="@routes.Application.guideline()" target="_blank">@Messages.get("general.guidelines")</a></li>
然后这里是controller Application中的guideline()函数:
public static Result guideline() {
Guideline guidelineLink = Guideline.find.select("*").where().eq("id", 1).findUnique();
if(guidelineLink.link == null){
return ok(views.html.display.createError.render());
}else{
return redirect(guidelineLink.link);
}
}
我检索了数据库中文件的路径,这有效,我一直在使用标准 "http://...." url 对其进行测试。检索到的link是路径above-mentionned.
当然,我已经尝试通过 copy/pasting 在我的浏览器中简单地打开文件并且它有效。我还尝试将扩展名更改为 .html,或删除开头的 "file:///",但没有成功。我在互联网上也一无所获,我的好朋友 Google 让我失望了!
谢谢大家的帮助:-)
出于安全原因,您得到一个空白页面。在 RFC1738 你读到:
The file URL scheme is used to designate files accessible on a
particular host computer. This scheme, unlike most other URL schemes,
does not designate a resource that is universally accessible over the
Internet. (...)
The file URL scheme is unusual in that it does not specify an Internet
protocol or access method for such files; as such, its utility in
network protocols between hosts is limited.
浏览器能够打开本地计算机上的任何文件的图片。它将开辟新的利用方式,因为没有什么可以阻止远程页面访问您的本地数据。当然,您的浏览器可以打开本地文件,但这只是基本应用程序的附加功能,只有在您手动初始化打开操作时才有效。
要实现你想要的,你可以:
- 将文件放入您的项目 public 资源
- 在服务器端加载文件内容(请注意,它必须被授予对该资源的访问权限),然后 return 使用自定义响应
你好 Whosebug 社区!
我正在使用 Play Framework 2.1.1 使用 Java。
理想情况下,当用户单击顶部菜单(由导航栏定义)中的 link 时,他会被重定向到存储在内部服务器中的文件。文件路径类型为“file:///R:/PUBLIC/Name/myfile.htm”,文件包含图片
不幸的是,这不起作用(当我单击打开一个空白页面时,标题为 "unknown")而且我真的不明白为什么......我没有错误,只是空白页面。
这是顶部菜单中的link:
<li><a href="@routes.Application.guideline()" target="_blank">@Messages.get("general.guidelines")</a></li>
然后这里是controller Application中的guideline()函数:
public static Result guideline() {
Guideline guidelineLink = Guideline.find.select("*").where().eq("id", 1).findUnique();
if(guidelineLink.link == null){
return ok(views.html.display.createError.render());
}else{
return redirect(guidelineLink.link);
}
}
我检索了数据库中文件的路径,这有效,我一直在使用标准 "http://...." url 对其进行测试。检索到的link是路径above-mentionned.
当然,我已经尝试通过 copy/pasting 在我的浏览器中简单地打开文件并且它有效。我还尝试将扩展名更改为 .html,或删除开头的 "file:///",但没有成功。我在互联网上也一无所获,我的好朋友 Google 让我失望了!
谢谢大家的帮助:-)
出于安全原因,您得到一个空白页面。在 RFC1738 你读到:
The file URL scheme is used to designate files accessible on a particular host computer. This scheme, unlike most other URL schemes, does not designate a resource that is universally accessible over the Internet. (...)
The file URL scheme is unusual in that it does not specify an Internet protocol or access method for such files; as such, its utility in network protocols between hosts is limited.
浏览器能够打开本地计算机上的任何文件的图片。它将开辟新的利用方式,因为没有什么可以阻止远程页面访问您的本地数据。当然,您的浏览器可以打开本地文件,但这只是基本应用程序的附加功能,只有在您手动初始化打开操作时才有效。
要实现你想要的,你可以:
- 将文件放入您的项目 public 资源
- 在服务器端加载文件内容(请注意,它必须被授予对该资源的访问权限),然后 return 使用自定义响应