0

我有这个返回 pdf 文档的控制器操作:

  public FileResult getPdf()
  {
         System.IO.FileStream  fileStream = System.IO.File.OpenRead("myFile.pdf");         
         byte[] bytes = new byte[(int)fileStream.Length];
         fileStream.Read(bytes, 0, (int)fileStream.Length);
         Response.AppendHeader("Content-Disposition", "inline;");
         return File(bytes, "application/pdf", "file.pdf");
  }

该代码可以与 ActionLink 配合使用:

@Html.ActionLink("Download File","getPdf") 

但不适用于:

 <embed id="PdfFile" type="application/pdf" src="/Home/getPdf"/>

或者

<object id="PdfFile" type="application/pdf" src="/Home/getPdf"/>

或者

<script type="text/javascript" >
    $(document).ready(function () {
         $("#someDiv").load('/Home/getPdf');
    });
</script>

这 3 个选项在 Visual Studio 自主机上运行良好,但是当我部署到 IIS7 时返回“找不到错误 404”。ActionLink 在 IIS7 中也能正常工作

这些文件夹对所有用户都有权限。

我还尝试了 FileStreamResult 和 HttpResponse.binaryWrite。(结果相同)

谁能帮我?

谢谢

4

1 回答 1

0

好的,这应该给你你想要的

 <object data="src="@Url.Action("GetPDF")"" type="application/pdf" width="300" height="200">
alt : <a href="data/test.pdf">test.pdf</a>
 </object>


 public FileStreamResult GetPDF()
 {
     FileStream fs = new FileStream("filename.pdf", FileMode.Open, FileAccess.Read);
     return File(fs, "application/pdf");
 }
于 2013-02-01T20:01:49.397 回答