我尝试了一个php解决方案但在上一个问题中被告知我“无法通过HTTP读取/列出目录。您需要使用不同的协议在Internet上列出目录:FTP,SSH等你需要访问远程服务器来执行此操作。如果你唯一可以使用的是HTTP,你需要检索网页(= HTML文档)并自己解析它。 (How to get a php script to print/work)
我希望它很简单 - 我可以做HTML,我正在学习Java,而我只是在用PHP挣扎。
更新:一个例子。 file.txt,file2.txt,& file3.txt在/ some /目录中 - 我想要一个PHP脚本来抓取一个RANDOMLY&以一种我可以把它放在一个元素的href中的方式给我。如果不是PHP,还有其他什么?感谢。
答案 0 :(得分:1)
我没有测试过这个。
$filenames=glob("files/*.txt");
$count=count($filenames);
if($count>0)
{
$rndfile=$filenames[rand(0,$count-1)];
echo '<a href="' . $rndfile . "'>Random file</a>";
}
答案 1 :(得分:0)
首先你需要文件:
<?php
[...]
$files = scandir(dirname(__FILE__));
$links = array();
foreach($files as $file)
{
links[] = '<a href="http://localhost/url_decoder?file="'.md5_file($filepath.$file).'"> $file';
}
<table>
foreach ($links as $link){ echo "<tr><td>$link</td></tr>";}
<table>
?>
这个小脚本扫描当前php脚本的文件路径,并在该目录中为每个文件创建一个链接到另一个使用文件md5哈希值作为参数的php脚本。然后解码器应该如下:
<?php
[...]
$file_search = $_GET['file'];
$files = scandir(dirname(__FILE__));//coder and decored located in same folder
foreach($files as $file)
{
if (md5_file(dirname(__FILE__).DIRECTORY_SEPARATOR.$file) == $file)
{
$fd = fopen (dirname(__FILE__).DIRECTORY_SEPARATOR.$file, "r")) {
$fsize = filesize(dirname(__FILE__).DIRECTORY_SEPARATOR.$file);
$path_parts = pathinfo($fullPath);
$ext = strtolower($path_parts["extension"]);
switch ($ext) {
case "pdf":
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\""); // use 'attachment' to force a download
break;
default;
header("Content-type: application/octet-stream");
header("Content-Disposition: filename=\"".$path_parts["basename"]."\"");
}
header("Content-length: $fsize");
header("Cache-control: private"); //use this to open files directly
while(!feof($fd)) {
$buffer = fread($fd, 2048);
echo $buffer;
}
fclose ($fd);
exit;
}
}
?>
这并不完美,有些代码来自page,但至少可以让您了解如何操作。希望这有帮助!