2013-02-05 64 views
0

我想顯示網絡路徑中可用的報告(pdf),假設爲(http://myservre/reports/myrepoft.pdf)。目前,它正在像這樣通過IFrame顯示。我想在地址欄中隱藏網址

strReportPDFFile = "`http://myservre/reports/myrepoft.pdf`" 

<IFRAME frameborder="1" onload="onchangestate()" src="" id="ifrmShowReport" frameborder="0" height="100%" width="100%" marginwidth="0" align="top" style="overflow: none;overflow-x: auto;display:none"></IFRAME> 

document.getElementById("formContainer").style.display = "block"; 
document.getElementById("ifrmShowReport").style.display = "block"; 
document.getElementById("ifrmShowReport").src = strReportPDFFile; 

該URL顯示在我想隱藏URL的地址欄中。可能嗎 ?如果沒有,請提出一些更好的選擇。

+0

我想這取決於*爲什麼*你想隱藏它嗎? – Blachshma

+7

什麼?那麼沒有人能偷走它?即使將它隱藏在iframe中,也很容易發現。瀏覽器必須具有* some * URL才能獲取文檔 –

+0

我的客戶說這是潛在的主題。所以我們要隱藏它 – Smaug

回答

1

我認爲您的問題(隱藏PDF文件的URL)的主要原因是安全問題。 例如你的服務器上有一些PDF文件必須發送,只能從目標讀者讀取,而不能讀取所有人。

我給你如何實現這個目的的一些基本提示:

  • 地方PDF文件從你的服務器的公共根的
  • 實現服務器端腳本:
    • 檢查是用戶通過身份驗證並獲得文件的授權
    • 獲取一些參數以檢索正確的文件
    • 通過此服務器端腳本來提供文件內容處置(作爲附件,發送正確的MIME類型和一個「虛構的」 URL)

既然你把C#在你的問題的標籤我解決你 一個內容處置添加到頁眉與C#: Response.AddHeader(「content-disposition」,@「attachment; filename =」「MyFile.pdf」「」);

然後,你可以在任何你想要的地方顯示你的pdf:空白頁,iframe ... 它肯定你不會找到一個解決方案,只是使用HTML/Javascript,而不是在中等水平互聯網用戶。

+0

這是一個關於如何在.NET中讀取和處理文件的詳細描述: http://stackoverflow.com/questions/3889521/response-addheadercontent-disposition-not-opening-file-in-ie6 – kante