ディレクトリ階層をトラバースしているファイルがあります。サブディレクトリは、従業員の ID によって名前が付けられます。ID の代わりに名前を出力できるように、従業員の名前を取得するために従業員クラスをインスタンス化しました。
エラー「致命的なエラー: オブジェクト以外のメンバー関数を呼び出しますが、理由がわかりません。
var_dump() を使用してオブジェクトをダンプし、すべてを確認できます。それぞれ 4 つのファイルを含むサブディレクトリは 3 つだけです。
以下は私のコードです:
<div id="empDir1" style="padding-left:20px; padding-bottom:25px;">
<?php
$dirPath = "emp_files";
function fileManager( $dir ) {
$dirParts = explode("/", $dir);
$dirId = $dirParts[1];
if ( !isset( $dirId ) ){
echo "<div></div>";
} else {
$employeeId = $dirId;
$employee = Employee::getEmployee( $employeeId );
$emp_lastname = $employee->getValueEncoded('emp_lastname');
$emp_firstname = $employee->getValueEncoded('emp_firstname');
$dirListing = $emp_lastname . ', ' . $emp_firstname;
}
echo "<h2>File Listing for $dirListing ...</h2>";
if ( !( $handle = opendir( $dir ) ) ) die( "Cannot open $dir." );
$fileImage = array(
'doc' => '../../images/folder-doc.png',
'txt' => '../../images/folder-txt.png',
'msg' => '../../images/folder-msg.png',
'pdf' => '../../images/folder-pdf.png',
'png' => '../../images/folder-png.png',
'jpg' => '../../images/folder-jpg.png',
'bmp' => '../../images/folder-bmp.png',
'gif' => '../../images/folder-gif.png',
'xls' => '../../images/folder-xls.png',
);
$files = array();
while ( $file = readdir( $handle ) ) {
if ( $file != "." && $file != ".." ) {
if ( is_dir( $dir . "/" . $file ) ) $file .= "/";
$files[] = $file;
}
}
sort( $files );
echo '<table>';
foreach ( $files as $file ) {
$fileParts = explode('.', $file);
$fileExt = strtolower($fileParts[count($fileParts) -1]);
echo '<tr>';
echo '<td width="650px" class="row2">';
echo ("<a class='ptext' href=" . $dir . "/" . $file . ">" . ( isset($fileImage[$fileExt] ) ? "<img src='". $fileImage[$fileExt] . "' />" : "<img src='../../images/folder-unknown.png' />" ) . " $file</a><a style='float:right;padding-right:10px;' href='empUnlink.php?filePath=" . $dir . $file ."' id='" . $dir . $file ."' class='deleteFile'>x</a></p>");
echo '</td>';
echo '</tr>';
}
echo '</table>';
foreach ( $files as $file ) {
if ( substr( $file, -1 ) == "/" ) fileManager( "$dir/" . substr( $file, 0, -1 ) );
}
closedir( $handle );
}
fileManager( $dirPath );
?>