从目录下载随机文件

时间:2014-05-25 18:58:33

标签: php mysql

所以我有一个名为/ kv /的目录,我想要它,所以当你去blah.com/getkv.php它将从目录下载一个随机文件。如果可能的话,我希望它在下载文件后删除它。所有帮助将不胜感激!

2 个答案:

答案 0 :(得分: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);

选择随机文件的另一种方法是索引文件夹,然后随机选择其中一个文件。

进行检查以确保文件存在也是明智的。

答案 1 :(得分: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);