我使用php函数获取文件列表。它将目录中的所有文件显示为php页面上的表格。
如何使这些文件可以下载到每个文件名?
实际文件的扩展名为.tar.gz。
谢谢!
我的功能:
function getFileList($dir)
{
// array to hold return value
$retval = array();
// add trailing slash if missing
if(substr($dir, -1) != "/") $dir .= "/";
// open pointer to directory and read list of files
$d = @dir($dir) or die("getFileList: Failed opening directory $dir for reading");
while(false !== ($entry = $d->read())) {
// skip hidden files
if($entry[0] == ".") continue;
if(is_dir("$dir$entry")) {
$retval[] = array(
"name" => "$entry/",
"type" => filetype("$dir$entry"),
"size" => 0,
"lastmod" => filemtime("$dir$entry")
);
} elseif(is_readable("$dir$entry")) {
$retval[] = array(
"name" => "$entry",
"type" => mime_content_type("$dir$entry"),
"size" => filesize("$dir$entry"),
"lastmod" => filemtime("$dir$entry")
);
}
}
$d->close();
return $retval;
$dirlist = getFileList("backupfiles");
}
我的代码:
<?PHP
// output file list in HTML TABLE format
echo "<table id=\"ct\" border=\"1\">\n";
echo "<thead>\n";
echo "<tr id = \"ct_sort\"><th>Name</th><th>Type</th><th>Size</th>
<th>Added On</th></tr>\n";
echo "</thead>\n";
echo "<tbody>\n";
foreach($dirlist as $file) {
echo "<tr>\n";
echo "<td>{$file['name']}</td>\n";
echo "<td>{$file['type']}</td>\n";
echo "<td>{$file['size']}</td>\n";
echo "<td>",date('r', $file['lastmod']),"</td>\n";
echo "</tr>\n";
}
echo "</tbody>\n";
echo "</table>\n\n";
?>
答案 0 :(得分:1)
您可以使用:
echo "<td><a href='http://www.yoursite.com/folder/{$file['name']}'>{$file['name']}</a></td>\n";
而不是:
echo "<td>{$file['name']}</td>\n";
答案 1 :(得分:0)
只需在<a>
内添加一个锚<td>{$file['name']}</td>\n
标记即可:echo "<td><a href=\"{$file['path_to_file']}\">{$file['name']}</a></td>\n"
其中path_to_file
是保存数据库中文件路径的变量。注意三个引用级别。
答案 2 :(得分:0)
注意:这是我原来评论的答案。
在foreach中,您只需将echo "<td>{$file['name']}</td>\n";
更改为:
echo "<td><a href='{$file['url']}'>{$file['name']}</a></td>\n";
假设您的网址位于$file['url']