я пишу простой сценарий управления документами и мне нужно получить размер файла и тип файла / файл или папку / в таблице. как-то не работает в каталоге упоминаний. пожалуйста, помогите, если это возможно:
<?php
$path = "./documents";
$dh = dir($path);
while( ($file=$dh->read()) )
{
if( $file=="." || $file=="..")continue;
echo "<tr><td><a href='download.php?f=$file' title='Click to Open/Download'>$file</a></td>";
echo "<td>";
echo (is_file($file))? "<img src='file.jpg'/> FILE" : "<img src='folder.jpg'/> FOLDER ";
echo "</td><td>" .filesize($file)."</td>";
echo "<td><input type='checkbox' name='delete[]'/></td></tr>";
}
?>
на самом деле это имеет 2 ошибки — одна размер файла не работает для местоположения, если я изменю его на путь к «.» — все в порядке, но если я пытаюсь перейти в папку, где мне это нужно / документы … все идет плохо, и, во-вторых, — он также не берет нужный файл значка, такой же тип проблемы.
благодарю вас
Проблема в том, $file
это только имя файла без префикса каталога, поэтому проверка его не будет работать. Одним из способов было бы иметь переменную с абсолютным именем файла (скажем, $realfile
). Затем вам придется изменить свой код и использовать эту переменную для проверки файлов:
<?php
$path = "./documents";
$dh = dir($path);
while(($file=$dh->read()) !== false) {
if( $file=="." || $file=="..") continue;
// have a new variable for the real filepath
$realfile = $path . "/" . $file;
echo "<tr><td><a href='download.php?f=$file' title='Click to Open/Download'>$file</a></td>";
echo "<td>";
echo (is_file($realfile))? "<img src='file.jpg'/> FILE" : "<img src='folder.jpg'/> FOLDER ";
echo "</td><td>" .filesize($realfile)."</td>";
echo "<td><input type='checkbox' name='delete[]'/></td></tr>";
}
?>
Других решений пока нет …