我正在寻找隐藏下载源的方法.我很惊讶这不是更多,但它也让我想知道是否可能.
(编辑:通过隐藏,我的意思是让最终用户很难或不可能找到文件的直接链接.因此,他们将被迫实际在页面上,点击它,以使其工作.)
我找到了一个强制下载本地存储文件的脚本.我看到它的方式,它隐藏了真正的来源(至少它不在视图源或下载历史记录中).
http://w-shadow.com/blog/2007/08/12/how-to-force-file-download-with-php/
所以这是有效的,我把它变成了一个获取linkID的函数,然后用DB检查实际的文件源.万岁!
只有当你的下载在另一台服务器上时呢?然后你不能使用这里使用的大多数函数(如filesize,isreadable,fopen,...).我不够精通,无法确定是否有可能使跨服务器工作.
我意识到可能我的网络服务器会丢失带宽,即使文件没有存储在那里,这不是一个大问题.
任何有关该主题的信息将不胜感激.我更喜欢PHP,但我可以使用你给我的任何东西,我真的不知道这个.
您是说要隐藏存储在服务器上的文件的路径?如果是这种情况,只需将文件存储在Web根目录之外,并使用PHP脚本提供文件,该脚本将使用相应标头的readfile()+ header(),具体取决于您是要为打开文件提供服务还是强制下载.有关强制下载脚本的大量示例,请参见http://php.net/readfile.
抱歉不可能。您必须告诉浏览器资源所在的位置,以便任何精明的用户都可以简单地解码地址或扫描 HTTP 请求或其防火墙日志或浏览器中的下载历史记录。
如果您尝试隐藏服务器上的路径,则使用 mod_rewrite 或别名或其他类似方法进行 URL 重写就足够了。
更新:好的,如果使用您自己的带宽不是问题,那么您需要做的就是将文件二进制内容输出到浏览器并设置相关的 HTTP 标头(即 Content-Type 和 Content-Disposition)。如果文件必须远程存储,那么您将需要脚本在输出内容之前使用 CURL 或类似方法下载并即时读取它们。
| 归档时间: |
|
| 查看次数: |
5578 次 |
| 最近记录: |