2015-06-03 142 views
2

您好Stackoverflow社區!播放框架Java - 顯示存儲在本地服務器上的htm文件

我使用Java播放框架2.1.1工作。

理想我想,當在頂部菜單(通過導航欄定義)的鏈接,在用戶點擊他被重定向到存儲在內部服務器上的文件。文件路徑類型爲「file:/// R:/PUBLIC/Name/myfile.htm」,並且該文件包含圖片。

不幸的是,這並不工作(當我點擊一個空白頁面打開,標題爲「未知」),我真的不能明白,爲什麼我還沒有任何錯誤,只是空白頁。

這裏是頂部菜單鏈接:

 <li><a href="@routes.Application.guideline()" target="_blank">@Messages.get("general.guidelines")</a></li> 

那麼這裏就是指引()函數在控制器應用:

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:// ....」網址進行測試。檢索的鏈接是上面提到的路徑。

當然,我曾嘗試只需打開通過複製/粘貼在文件中我的瀏覽器和它的作品。我也嘗試將擴展名更改爲.html,或者在開始時刪除「file:///」,但沒有成功。我在互聯網上也沒有發現任何東西,我的好朋友谷歌在這一個上失敗了!

謝謝大家的幫助:-)

回答

0

你得到的,因爲安全原因,一個空白頁。在RFC1738您閱讀:

文件URL方案是用來指定一個特定的 主機上訪問的文件。該方案與大多數其他URL方案不同, 未指定通過互聯網可普遍訪問的資源。 (...)

文件URL方案是不尋常的,因爲它沒有指定這些文件的互聯網 協議或訪問方法;因此,它在主機之間的網絡協議的效用是有限的。

圖片顯示瀏覽器能夠打開本地機器上的任何文件。它會開闢新的利用方式,因爲沒有什麼會阻止遠程頁面訪問本地數據。當然,您的瀏覽器可以打開本地文件,但它只是基本應用程序的一個附加功能,並且僅在您手動初始化打開操作時纔有效。

達到你想要,你可以什麼:

  • 將文件放在你的項目的公共資源
  • 加載文件的服務器端的內容(請注意,它必須具有訪問權限被授予該資源),然後用自定義響應
+0

謝謝你的答案回吧! 我不明白的是,在這個位置,網絡中的任何用戶都可以訪問該文件,爲什麼不瀏覽器?我的意思是我不是創建文件並將其放在那裏的人,但是我可以從我的電腦打開它,有什麼區別? 對不起,如果這應該是顯而易見的:-( – delphrd

+0

我起初誤解了你的問題。你的評論明確了,所以我更新了我的帖子。 –

+0

謝謝你的幫助,現在更清楚了:-) – delphrd

相關問題