2012-07-27 68 views
1

我想在iframe上顯示pdf,但我的pdf不在項目文件夾(C:\ intetpub \ wwwroot)上。它被保存在驅動器D:\上。iframe不顯示PDF與路徑從D:驅動器?

示例代碼:
<iframe src="D:\Test.pdf#page=30"></iframe>

我試過的FF:

src="file:///D:/Test.pdf#page=30" 
src="<%: Url.Content(Model.path) %>" 

但仍沒有運氣。我不想複製/移動項目文件夾或根文件夾中的pdf。有沒有其他方式來做到這一點,或者我的src路徑錯誤?

我打算創建一個showPDF.aspx,把它放在iframe上,但是我擔心adobe url參數可能不適用於這個解決方案。

回答

1

你必須寫一個控制器動作,將檢索文件和流回響應:

public ActionResult Pdf() 
{ 
    return File(@"d:\test.pdf", "application/pdf"); 
} 

,現在在你的看法,你可以使用iframe把它指向這個控制器動作:

<iframe src="<%= Url.Action("Pdf", "SomeController") %>"></iframe> 
+0

謝謝你的工作.. – RSB 2012-07-27 07:05:28

1

使用您粘貼的代碼,瀏覽器將嘗試從CLIENT機器D驅動器顯示該文件。您需要在應用程序中創建一個指向您的PDF文件夾的虛擬目錄。然後,您可以像引用Web應用程序根目錄中的實際目錄那樣引用該虛擬目錄。

  1. 設置在IIS虛擬目錄(名爲PDF也許?),並指向d:\
  2. 現在,你的源鏈接可能是這樣的src="\PDF\Test.pdf"

另一種方法是將有一個進入該目錄的控制器/動作,將該文件讀入一個字節數組,並將該文件的內容返回給最終用戶。 Here is an SO answer如何將文件從一個控制器動作返回給用戶或直接返回文件由達林

的建議
public ActionResult Pdf() 
{ 
    return File(@"d:\test.pdf", "application/pdf"); 
} 
+0

PDF作用的結果是工作,我會嘗試虛擬直銷對其他選擇tiory。謝謝。 – RSB 2012-07-27 07:07:27