防止下载文件

时间:2014-02-11 20:06:25

标签: javascript jquery html

我做了一个小网页,其中有一些模态窗口(jquery.simplemodal)。显示这些窗口时,它们应显示两个pdf文件(从服务器下载)。

<div id="modal1">  - hiden modal window
    <embed src="/FileDownload?id=100" width="100%" height="600px">
    <embed src="/FileDownload?id=150" width="100%" height="600px">
</div>

<table>
  <tr>
     <td>
        <a href="#" onclick="return activate(modal1)"> Modal Window 1</a>
     </td>
  </tr>
</tale>

我遇到的问题是,当加载页面时,也会从服务器下载所有文件。

从HTML的角度来看,我已经读到没有办法避免这种情况。

你能否告诉我是否可以使用Javascript(例如在首次显示模态窗口时更新 src embed 元素)?

http://stackoverflow.com上我找到了一些关于更改元素属性的主题,但没有任何内容对我有用。

JavaScript: Changing src-attribute of a embed-tag

Can i open a modal window from file A and displaying file B on the modal window?

谢谢!

P.S。这是一个Intranet应用程序。我希望每次打开页面时都避免下载20-40个文件(每个文件几MB)。我想的另一个解决方案是使用Java小程序,但我认为这会使这个小项目复杂化。

3 个答案:

答案 0 :(得分:1)

使用jQuery。我相信这就是你想要做的事情:如果你点击弹出模态的链接,只加载嵌入文件?

$("a").click( function (e) {
    e.preventDefault();
    $("#modal1").append("<embed id='100' src='/FileDownload?id=100' width='100%' height='600px'/><embed id='150' src='/FileDownload?id=100' width='100%' height='600px'/>");
    $("#modal1").show();
});

And the Fiddle

答案 1 :(得分:0)

Web浏览器的本质是将文件下载到缓存,以便在下次访问时或在页面更改期间,显着时间大大减少。作为Web开发人员,您无法阻止此操作。用户可以在他自己的浏览器中关闭此功能,如果他希望保持其缓存清洁,但您和您的网站不能。有一些方法可以阻止观众有意下载图像或文件,例如禁用图像上的右键点击,但是精明的用户也有办法绕过这些方法。

特别需要下载PDF文件以加快查看速度。如果关闭此功能,用户体验将会非常慢,您可能会将人们赶出您的网站。

答案 2 :(得分:0)

即使无法完全保护您的文件,也有一些方法可以让您更难下载原始PDF文档,我们有一些PHP脚本可以帮助您在桌面发布者中找到(可用于GPL和商业)。

可免费下载,即使您不使用产品的其余部分,也可以抓取脚本。如果您下载它并在发布文档时可以扩展高级设置并勾选“签名和混淆”,您应该获得保护文件所需的脚本。

http://flexpaper.devaldi.com/flexpaper_flip_zine.jsp