php代码 pdf保护,php – 保护PDF文档不被URL直接访问

我想保护pdf文件不被直接链接,而是让我登录的用户能够访问它.我有一个链接,目前转到一个

javascript函数发布一个表单:

$( ‘nameofdoc’)的setProperty( ‘价值’,DOC).

.的document.getElementById( ‘sendme’)提交();

其中sendme是表单的名称,name的名称是我想要显示的文档的索引.

然后转到php文件:

$docpath = $holdingArray[0].$holdingArray[1];

$file = $holdingArray[0]; //file name

$filename = $holdingArray[1]; //path to the file]

header( 'Location:'.$docpath ) ;

header('Content-type: application/pdf');

header('Content-Disposition: attachment; filename="'.$filename . '"');

readfile($filename)

这一切都很好,它加载文件并输出pdf.我不能做的是保护目录免受直接链接 – 即www.mydomain.com/pathToPdf/pdfname.pdf

我曾经想过使用.htaccess来保护目录,但是它在共享主机上,所以我不确定安全性,无论如何,当我尝试时,我无法让它工作.

任何帮助都会很棒,因为这是我尝试解决这个问题的第四天.

谢谢

更新

我有很多帮助,谢谢你,但我还没到那里.

我有一个.htaccess文件,当从目录请求pdf时,它现在启动另一个php文件:

RewriteEngine on

RewriteRule ^(.*).(pdf)$fileopen.php

当fileopen.php文件启动时,无法打开pdf

$path = $_SERVER['REQUEST_URI'];

$paths = explode('/', $path);

$lastIndex = count($paths) - 1;

$fileName = $paths[$lastIndex];

$file = basename($path);

$filepath = $path;

if (file_exists($file)) {

header( 'Location: http://www.mydomain.com'.$path ) ;

header("Content-type: application/pdf");

header("Content-Disposition: attachment; filename=".$file);

readfile($filepath);

}else{

echo "file not found using path ".$path." and file is ".$file;

}

输出是

使用路径/documents/6/Doc1.pdf找不到文件,文件是Doc1.pdf

但该文件确实存在,并在那个direcotry – 任何想法?

好的,我很高兴地报道Jaroslav真的帮助我解决了这个问题.他的方法运行良好,但是将所有目录内容排成一行很棘手.最后,我花了几个小时玩组合来使它工作,但他给出的原则很好.谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值