0

我想显示 webpath 中提供的报告(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 的地址栏中。是否可以 ?如果没有,请提出一些更好的选择。

4

1 回答 1

1

我认为您提出问题的主要原因(隐藏 PDF 文件的 URL)是出于安全问题。例如,您的服务器上有一些 PDF 文件必须仅从目标受众而不是所有人发送和阅读。

我给你一些关于如何实现这个意图的基本提示:

  • 将 PDF 文件放在网络服务器的公共根目录之外
  • 实现一个服务器端脚本:
    • 检查用户是否已通过身份验证并有权获取文件
    • 获取一些参数来检索正确的文件
    • 使用此服务器端脚本内容处置提供文件(作为附件,发送正确的 Mime-Type 和“虚构”URL)

由于您将 C# 放在问题标签中,因此我在使用 C# 添加内容配置到标题中向您介绍: Response.AddHeader("content-disposition", @"attachment;filename=""MyFile.pdf""");

然后,您可以在任何您希望的地方显示您的 pdf:空白页、iframe ... 可以肯定的是,您不会找到仅使用 HTML/Javascript 的解决方案,对于中级互联网用户来说,这不是容易避免的解决方案之一。

于 2013-02-05T15:39:34.263 回答