在没有下载的情况下在模态窗口中显示pdf

时间:2017-07-02 13:10:07

标签: c# asp.net pdf iframe bootstrap-modal

我尝试在模态窗口中打开pdf

我遇到了问题
<div class="modal fade" id="basic" tabindex="-1" role="basic" aria- hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria- hidden="true">
                    </button>
      </div>
      <div class="modal-body">
        <iframe id="Iframe1" src="" runat="server" width="540" height="600"></iframe>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn red btn-outline" data- dismiss="modal">
                        أغلق</button>
      </div>
    </div>
    <!-- /.modal-content -->
  </div>
</div>

我给iframe一个src来显示一个pdf文件,

frame1.Attributes.Add("src", "~/file.pdf");

问题是下载管理器强制下载文件而不是以模态显示, 所以我尝试添加下面的代码,但它在所有页面中打开而不是模态

 string x ="~/file.pdf";

 Response.ContentType = "Application/pdf";
 Response.WriteFile(HttpUtility.HtmlEncode(x));
 Response.End();
 frame1.Attributes.Add("src", x);

1 个答案:

答案 0 :(得分:0)

您可以执行两项操作,两者都与标题中的content-disposition相关。 关键是使用content-disposition inline返回PDF。

所以你可以在IIS中设置它:

  • 转到文件
  • 属性
  • 接头
  • 设置内容配置,内联;文件名= “File1.pdf”

或制作自己的FileDownloader.aspx。并设置内容配置:

Response.ContentType = "Application/pdf";
Response.setHeader("Content-disposition", "inline; filename=\"File1.pdf\"");
Response.WriteFile(HttpUtility.HtmlEncode("file1.pdf"));
Response.End();

在您的iFrame中,您只需定位下载程序

 frame1.Attributes.Add("src", "FileDownloader.aspx");