所以我带着这个问题来找你:
GIVENS:
问题:
这是我目前的代码:
function getMyFakeDir($myfile) {
$target = "";
$link = 'content/purchased-items/link';
symlink($target, $link);
echo "READ LINK: ". readlink($link);
return readlink($link);
}
这里是对函数的调用:
$linkText = getMyFakeDir('SomePDFThatTheUserCanDownload.pdf');
然后我传递了#34; $ linkText" var到PHPMailer和wala !!!用户点击通过符号链接下载,我已经编写了一个代码,使其在24小时后过期。是的,我是从PHP.net那里得到的。
所以,基本上这就是我的问题......
这是错误:
Warning: symlink(): Permission denied in /homeSomewhere/someMasterDir/public_html/webServices/somePHPFile.php on line 654
这是上面的链接654:
符号链接($ target,$ link);
谢谢...
答案 0 :(得分:0)
想出来......简单的LOGIC!
首先,我认为PATHS都错了。这是修正后的代码:
//Generate Symbolic Link that blows away a fake directory each time
//A symbolic Link is created to "THIS" file below
$filename = $myfile;
//This is ANY directory on the server...
//A randomly named directory is created here...STEP 1
$downloaddir = "/home/someHostDir/public_html/sldktrulwiu2555ivd0fjvdfgdfgdfgdf/";
//Any directory NOT accessible by a browser - This is one level up
$safedir = "/home/someHostDir/content/purchased-items/";
//This is the equivalent of the $downloaddir and the browser is REDIRECTED here and the download begins
$downloadURL = "http://www.theSomeDomain.com/sldktrulwiu2555ivd0fjvdfgdfgdfgdf/"; //THIS IS THE FAKE DIRECTORY (Which I simply type gobbligook and created that mess above)
$letters = 'abcdefghijklmnopqrstuvwxyz';
srand((double) microtime() * 1000000);
$string = '';
for ($i = 1; $i <= rand(4, 12); $i++) {
$q = rand(1, 24);
$string = $string . $letters[$q];
}
$handle = opendir($downloaddir);
while ($dir = readdir($handle)) {
if (is_dir($downloaddir . $dir)) {
if ($dir != "." && $dir != "..") {
@unlink($downloaddir . $dir . "/" . $filename);
@rmdir($downloaddir . $dir);
}
}
}
closedir($handle);
mkdir($downloaddir . $string, 0777);
symlink($safedir . $filename, $downloaddir . $string . "/" . $filename);
//Header("Location: " . $downloadURL . $string . "/" . $filename);
这就是它。
结果是&#34; / sldktrulwiu2555ivd0fjvdfgdfgdfgdf /&#34;中的动态目录;像这样的目录:&#34; dfsgss /&#34;和#34;快捷方式&#34;到文件所在的真实位置。然后,当文件被下载,并且页面返回到INDEX.HTML时,代码BLOWS OUT FAKE目录再也看不到了。因此,如果用户想要返回,他们会收到文件/已被移动或删除的可怕的404 PAGE错误。长号。
那是伙计们。感谢您的帮助,是您帮助我解决了我的错误。团队合作!