PHP和符号链接

时间:2012-07-10 13:53:05

标签: php exec symlink

我想制作要下载的文件的临时副本,所以我使用了符号链接。它适用于我的本地主机,但当我上传它不起作用!我检查了“tmp”目录的权限。 这是代码:

$symlink = GenName($name);
$pwd = exec("pwd");
exec('ln -s "'.$pwd.'/videos/'.$name.'" "'.$pwd.'/tmp/'.$symlink.'"');

任何想法如何修复它或其他想法来保护原始文件并提供临时文件当然不是副本,没有空间!!!

1 个答案:

答案 0 :(得分:2)

使用符号链接删除整个方法!如果要允许临时访问文件,请使用PHP脚本执行此操作。为您的用户提供example.com/download.php?file=foobar&token=abcdef12345之类的网址,该网址将由以下脚本处理:

if (!is_valid($_GET['token']) /* your validation logic here */) {
    die('Invalid token');
}

// your content type here
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
readfile('original.pdf');

请参阅headerreadfile