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