2
我正在寻找某种下载身份验证。我要给用户一个链接到一个文件,我想确保只有那个人只会得到它一次。没有建立数据库有没有简单的解决方案?如何设置下载验证?
更妙的是:如果可能有一个加密的网页链接,可以让您从我的FTP服务器上下载一个文件一次,之后链接变得无效。
我正在寻找某种下载身份验证。我要给用户一个链接到一个文件,我想确保只有那个人只会得到它一次。没有建立数据库有没有简单的解决方案?如何设置下载验证?
更妙的是:如果可能有一个加密的网页链接,可以让您从我的FTP服务器上下载一个文件一次,之后链接变得无效。
您可以使用简单的PHP脚本。这个脚本在浏览器上的GET文件中反复调用inputet。 执行完毕后,您可以将此文件重命名为随机字符串。 这只有第一人下载这个文件。 您的链接得到这样的一些。是www.domain.tld/DIR/script.php的?文件=。在/ usr/123.tar.gz。 您可以在文件名的base64加密过,在此选项中您的链接是www.domain.tld/DIR/script.php的文件= Li91c3IvMTIzLnRhci5neg ==
无脚本的base64:
<?php
$file = $_GET['file'];
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
rename($file, "secret_new_filename");
exit;
}
else
{
echo 'File don\'t exist';
}
?>
而且使用Base64 :
<?php
$file = base64_decode($_GET['file']);
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
rename($file, "secret_new_filename");
exit;
}
else
{
echo 'File don\'t exist';
}
?>
这是一个非常好的主意Svisstack。不幸的是,我不太了解PHP。有没有一个脚本可以做到这一点? – 2010-04-18 22:12:25
我写这个剧本,给我一点时间。 – Svisstack 2010-04-18 22:13:18
非常感谢! /尊重! – 2010-04-18 22:19:53