2014-05-25 123 views
0

所以我有一個名爲/ kv /的目錄,我想要它,所以當你去blah.com/getkv.php時,它會從目錄下載一個隨機文件。如果可能,我希望它在下載完成後刪除文件。所有的幫助將不勝感激!從目錄下載隨機文件

回答

3

您可以按照數字順序存儲文件,然後通過隨機數字隨機選擇一個文件。

$random = mt_rand(1,100); //The amount of files you have 

下,一旦你有一個文件選擇你將設置下載標題

$file="/path/to/file/".$random.".png"; //file location 
header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment; filename="'.basename($file).'"'); 
header('Content-Length: ' . filesize($file)); 
readfile($file); 

最後刪除與

delete($file); 

文件選擇一個隨機文件的另一種方式索引一個文件夾,然後隨機選擇其中一個文件。

確保文件存在也是明智的做法。

+0

'range(1,100)'會給你一個1-100的數組,而不是一個隨機數。你的意思是'mt_rand(1,100)'? – chiliNUT

+0

@chiliNUT對不起,我很累哈哈 – viralpickaxe

0

下面是一些PHP獲取從目錄隨機文件:

$files = glob('*.{php,html}', GLOB_BRACE); 
$file = $files[rand(0,count($files) - 1)]; 

然後由viralpickaxe提供答案的部分添加:

header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment; filename="'.basename($file).'"'); 
header('Content-Length: ' . filesize($file)); 
readfile($file); 

...並從目錄中刪除文件:

unlink($file);