1

iframeにPDFを表示したいのですが、PDFがプロジェクトフォルダー(C:\ intetpub \ wwwroot)にありません。ドライブ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に配置することを計画していましたが、このソリューションではadobeurlパラメーターが機能しない可能性があります。

4

2 に答える 2

1

貼り付けたコードを使用して、ブラウザはCLIENTマシンDドライブからそのファイルを表示しようとします。PDFフォルダを指す仮想ディレクトリをアプリケーションに作成する必要があります。次に、Webアプリケーションルートの実際のディレクトリと同じように、その仮想ディレクトリを参照できます。

  1. IISで仮想ディレクトリ(PDFと呼ばれるかもしれませんか?)を設定し、D:\をポイントします
  2. これで、ソースリンクは次のようになります。src="\PDF\Test.pdf"

FileResultもう1つの方法は、そのディレクトリに移動し、ファイルをバイト配列に読み取り、ファイルの内容を含むをエンドユーザーに 返すコントローラー/アクションを用意することです。これは、コントローラーアクションからユーザーにファイルを返す方法、またはDarinによって提案されたようにファイルを直接返す方法に対するSOの回答です。

public ActionResult Pdf()
{
    return File(@"d:\test.pdf", "application/pdf");
}
于 2012-07-27T06:45:54.000 に答える
1

ファイルを取得して応答に戻すコントローラーアクションを作成する必要があります。

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

これで、ビューでiframeを使用してこのコントローラーアクションを指すことができます。

<iframe src="<%= Url.Action("Pdf", "SomeController") %>"></iframe>
于 2012-07-27T06:46:21.033 に答える