-1

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

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

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

4

1 回答 1

2

用符号链接破坏整个方法!如果要允许临时访问文件,请使用 PHP 脚本。为您的用户提供一个类似 的 URL 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

于 2012-07-10T14:06:48.130 回答