????:配置文件 config.php: <?php // 配置文件 // 引入方法類(lèi)庫(kù) include 'function.php'; // 設(shè)置主目錄 $path = 'file'; // 讀取主目錄內(nèi)容 @$path = $_REQUEST['pat
配置文件 config.php: <?php // 配置文件 // 引入方法類(lèi)庫(kù) include 'function.php'; // 設(shè)置主目錄 $path = 'file'; // 讀取主目錄內(nèi)容 @$path = $_REQUEST['path'] ? $_REQUEST['path'] : $path; $data = read_dir($path); // 判斷目錄是否有內(nèi)容 if (!$data){ echo "<script>alert('無(wú)文件或目錄')</script>"; } // 判斷點(diǎn)擊操作 接受表單傳過(guò)來(lái)的值 @$act = $_REQUEST['act']; // 接受創(chuàng)建的文件名 @$filename = $_REQUEST['filename']; @$dirname = $_REQUEST['dirname']; // 拼接主頁(yè)地址 @$url = "index.php?path={$path}"; 公共提示信息 common.php: <?php // 公共提示信息 function alertMes($mes,$url){ echo "<script>alert('{$mes}'); location.href='{$url}'</script>"; } 封裝文件操作方法庫(kù) function.php: <?php /** * 封裝文件操作方法庫(kù) */ /** * 文件創(chuàng)建操作 * @param $filename //需要?jiǎng)?chuàng)建的文件名 * @return string 提示信息 */ function create_file($filename) { // 檢查文件是否存在,不存在則創(chuàng)建 if (file_exists($filename)) { return '文件已存在!'; } // 檢查目錄是否存在,不存在則創(chuàng)建 if (!file_exists(dirname($filename))) { mkdir(dirname($filename), 0777, true); } // 創(chuàng)建文件并判斷 if (touch($filename)) { return '文件創(chuàng)建成功!'; } return '文件創(chuàng)建失敗!'; } //var_dump(create_file('text6.txt')); //var_dump(create_file('file1/text.txt')); /** * 文件刪除操作 * @param $filename // 需要?jiǎng)h除的文件名 * @return string 提示信息 */ function del_file($filename) { // 查詢(xún)文件是否存在并查詢(xún)是否可寫(xiě) if (!file_exists($filename) && !is_writable($filename)) { return '此文件不可刪除!'; } // 刪除文件并判斷 if (unlink($filename)) { return '文件刪除成功!'; } return '文件刪除失?。?#39;; } //echo del_file('file1/text.txt'); /** * 文件復(fù)制操作 * @param $filename // 需要復(fù)制的文件名 * @param $dest // 目標(biāo)目錄或文件夾 * @return string // 提示信息 */ function copy_file($filename, $dest) { // 查詢(xún)文件是否存在并查詢(xún)是否可寫(xiě) if (!file_exists($filename) && !is_writable($filename)) { return '此文件不可復(fù)制!'; } // 查詢(xún)目錄是否存 if (!is_dir($dest)) { mkdir($dest, 0777, true); } // 拼接要拷貝到的目錄和文件名 $destname = $dest . "/" . basename($filename); // 查詢(xún)目標(biāo)目錄是否有該文件 if (file_exists($destname)) { return '該目錄下此文件已經(jīng)存在!'; } // 查詢(xún)并驗(yàn)證 if (copy($filename, $destname)) { return '文件復(fù)制成功!'; } return '文件復(fù)制失??!'; } //echo copy_file('text.txt','file1'); /** * 文件重命名操作 * @param $oldname // 需要重命名的文件名 * @param $newname // 目標(biāo)文件名 * @return string // 提示信息 */ function rename_file($oldname, $newname) { // 查詢(xún)文件是否存在并查詢(xún)是否可寫(xiě) if (!file_exists($oldname) && !is_writable($oldname)) { return '此文件不可重命名!'; } // 獲取當(dāng)前文件的目錄 $path = dirname($oldname); // 拼接重命名之后的路徑以及文件名 $destname = $path . "/" . $newname; // 判斷重命名的名稱(chēng)是否存在 if (file_exists($destname)) { return '此文件名已存在!'; } // 重命名操作并驗(yàn)證 if (rename($oldname, $newname)) { return '文件重命名成功!'; } return '文件重命名失??!'; } //echo rename_file('text.txt','text.txt'); /** * 文件剪切操作 * @param $filename // 需要剪切的文件 * @param $dest // 目標(biāo)目錄 * @return string // 提示信息 */ function cut_file($filename, $dest) { // 判斷源文件是否為正常文件 if (!is_file($filename)) { return "該文件不可剪切"; } // 判斷目標(biāo)目錄是否成功 if (!is_dir($dest)) { mkdir($dest, 0777, true); } // 拼接文件路徑 $destName = $dest . "/" . basename($filename); // 檢查目標(biāo)目錄是否存在源文件同名文件 if (is_file($destName)) { return "該文件夾下已存在此文件!"; } // 剪切操作并驗(yàn)證 if (rename($filename, $destName)) { return "文件剪切成功!"; } return "文件剪切失敗!"; } //echo cut_file('text1.txt','file1'); /** * 文件信息查詢(xún)操作 * @param $filename // 需要查詢(xún)的文件名 * @return array|string // 文件信息 */ function get_file_info($filename) { // 判斷文件是否為正常文件并判斷是否為可讀文件 if (!is_file($filename) && !is_readable($filename)) { return "該文件不可讀取數(shù)據(jù)!"; } return [ // 文件的類(lèi)型查詢(xún) 'type' => filetype($filename), // 文件的創(chuàng)建時(shí)間查詢(xún) 'ctime' => date("Y-m-d H:i:s", filectime($filename)), // 文件最后的修改時(shí)間查詢(xún) 'mtime' => date("Y-m-d H:i:s", filemtime($filename)), // 文件最后的訪(fǎng)問(wèn)時(shí)間查詢(xún) 'atime' => date("Y-m-d H:i:s", fileatime($filename)), // 文件字節(jié)大小查詢(xún) 'size' => trans_byte(filesize($filename)) ]; } //var_dump(get_file_info('text1.txt')); /** * 字節(jié)轉(zhuǎn)換操作 * @param $byte // 字節(jié)大小 * @param int $precision // 保留小數(shù)位 * @return string */ function trans_byte($byte, $precision = 2) { $KB = 1024; $MB = 1024 * $KB; $GB = 1024 * $MB; $TB = 1024 * $GB; if ($byte < $KB) { return $byte . 'B'; } elseif ($byte < $MB) { return round($byte / $KB, $precision) . 'KB'; } elseif ($byte < $GB) { return round($byte / $MB, $precision) . 'MB'; } elseif ($byte < $TB) { return round($byte / $GB, $precision) . 'GB'; } else { return round($byte / $TB, $precision) . 'TB'; } } /** * 文件內(nèi)容讀取操作 * @param $filename // 需要讀取的文件名 * @return bool|string // 文件內(nèi)容|提示信息 */ function read_file($filename) { // 檢查文件是否為正常文件并檢查文件是否可讀 if (is_file($filename) && is_readable($filename)) { // 讀取文件內(nèi)容 return file_get_contents($filename); } return "該文件無(wú)法讀取!"; } //echo read_file('text1.txt'); /** * 文件內(nèi)容讀取操作(數(shù)組形式返回) * @param $filename // 需要查詢(xún)內(nèi)容的文件名 * @param bool $skip_empty_lines // 是否跳過(guò)空行 * @return array|bool|string 文件內(nèi)容|提示信息 */ function read_file_array($filename, $skip_empty_lines = false) { // 檢查文件是否為正常文件并檢查文件是否可讀 if (is_file($filename) && is_readable($filename)) { // 判斷是否跳過(guò)空行 if ($skip_empty_lines == true) { // 查詢(xún)文件內(nèi)容 return file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); } else { // 查詢(xún)文件內(nèi)容 return file($filename); } } return "該文件無(wú)法讀?。?quot;; } //var_dump(read_file_array('text1.txt')); /** * 文件寫(xiě)入操作 * @param $filename // 目標(biāo)文件 * @param $data // 寫(xiě)入的數(shù)據(jù) * @param bool $clear // 是否清空目標(biāo)文件內(nèi)容 * @return string 提示信息 */ function write_file($filename, $data, $clear = false) { // 獲取目錄目錄 $dirname = dirname($filename); // 判斷目錄目錄是否存在 if (!file_exists($dirname)) { mkdir($dirname, 0777, true); } // 判斷數(shù)據(jù)是否為數(shù)組或?qū)ο? if (is_array($data) || is_object($data)) { $data = serialize($data); } // 判斷是否清空源文件內(nèi)容 if ($clear == false) { // 判斷目標(biāo)文件是否為正常文件并是否可讀 if (is_file($filename) && is_readable($filename)) { // 判斷目標(biāo)文件是否有內(nèi)容 if (filesize($filename) > 0) { // 獲取源文件內(nèi)容 $srcData = file_get_contents($filename); // 拼接源文件內(nèi)容 $data = $srcData . $data; } } } // 寫(xiě)入內(nèi)容并判斷 if (file_put_contents($filename, $data)) { return "文件寫(xiě)入成功!"; } return "文件寫(xiě)入失??!"; } //$data = [ // 'name' => '滅絕', // 'age' => 18 //]; //echo write_file('text1.txt',$data); /** * 文件下載操作 * @param $filename // 需要下載的文件名 */ function dow_file($filename) { // 告訴瀏覽器返回文件的大小 header('Accept-Length:' . filesize($filename)); // 告訴瀏覽器文件做為附件處理,并告訴瀏覽器下載完的文件名 header('Content-Disposition:attachment;filename=' . basename($filename)); // 輸出文件 readfile($filename); exit(); } //dow_file('123.jpg'); /** * 單文件上傳操作 * @param $fileInfo // 上傳的文件信息 * @param string $uploadPath // 上傳的指定目錄 * @param array $allowExt // 上傳的文件類(lèi)型 * @param int $maxSize // 上傳文件最大值 * @return string 提示信息 */ function upload_file($fileInfo, $uploadPath = './upload', $allowExt = ['png', 'jpg', 'jpeg', 'gif', 'txt', 'html'], $maxSize = 1000000) { // 判斷上傳錯(cuò)誤號(hào) if ($fileInfo['error'] === 0) { // 獲取文件后綴 $ext = strtolower(pathinfo($fileInfo['name'], PATHINFO_EXTENSION)); // 判斷文件類(lèi)型 if (!in_array($ext, $allowExt)) { return '非法文件類(lèi)型!'; } // 判斷文件大小 if ($fileInfo['size'] > $maxSize) { return '超出文件上傳最大值!'; } // 判斷文件上傳方式 if (!is_uploaded_file($fileInfo['tmp_name'])) { return '非法上傳!'; } // 判斷需要移動(dòng)到的目錄是否存在 if (!is_dir($uploadPath)) { mkdir($uploadPath, 0777, true); } // 生成唯一的文件名 uniqid 生成唯一id microtime 返回當(dāng)前unix時(shí)間戳中的微秒 $uniName = md5(uniqid(microtime(true), true)) . "." . $ext; // 拼接路徑以及文件名 $dest = $uploadPath . "/" . $uniName; // 將文件移動(dòng)到指定目錄 if (!move_uploaded_file($fileInfo['tmp_name'], $dest)) { return '文件上傳失敗!'; } return '文件上傳成功!'; } else { switch ($fileInfo['error']) { case 1: $res = '上傳的文件超過(guò)了 php.ini 中 upload_max_filesize 選項(xiàng)限制的值!'; break; case 2: $res = '上傳文件的大小超過(guò)了 HTML 表單中 MAX_FILE_SIZE 選項(xiàng)指定的值!'; break; case 3: $res = '文件只有部分被上傳!'; break; case 4: $res = '沒(méi)有文件被上傳!'; break; case 6: case 7: $res = '系統(tǒng)錯(cuò)誤!'; break; } return $res; } } /*———————————————————————————————————————————————————目錄操作方法———————————————————————————————————————————*/ /** * 目錄創(chuàng)建操作 * @param $dirName // 需要?jiǎng)?chuàng)建的目錄名稱(chēng) * @return string 提示信息 */ function create_folder($dirName) { // 判斷是否存在相同文件或目錄 if (file_exists($dirName)) { return "存在相同文件!"; } // 創(chuàng)建目錄并判斷 if (mkdir($dirName, 0777, true)) { return "目錄創(chuàng)建成功!"; } return "目錄創(chuàng)建失??!"; } //echo create_folder('css'); /** * 目錄刪除操作 * @param $path // 需要?jiǎng)h除的目錄 * @return string 提示信息 */ function del_folder($path) { // 打開(kāi)目錄 $dir = opendir($path); // 循環(huán)讀取目錄中的內(nèi)容 while ($item = readdir($dir)) { // 判斷.和.. 特別文件或目錄 if ($item != "." && $item != "..") { // 判斷是否為真正的文件 if (is_file($path . "/" . $item)) { // 刪除文件操作 unlink($path . "/" . $item); } // 判斷是否為真正的目錄 if (is_dir($path . "/" . $item)) { // 回調(diào)方法 $func = __FUNCTION__; // 使用方法 $func($path . "/" . $item); } } } // 關(guān)閉目錄 closedir($dir); // 刪除目錄 rmdir($path); return "目錄刪除成功!"; } //echo del_folder('file1'); /** * 目錄復(fù)制操作 * @param $src // 源目錄 * @param $dest // 目標(biāo)目錄 * @return string 提示信息 */ function copy_dir($src, $dest) { // 判斷需要復(fù)制的目錄下是否存在相同的目錄或文件 if (!file_exists($dest)) { mkdir($dest, 0777, true); } else { return "該目錄下存在相同文件!"; } // 打開(kāi)目錄 $dir = opendir($src); // 循環(huán)讀取目錄中的內(nèi)容 while ($item = readdir($dir)) { // 判斷.和.. 特別文件或目錄 if ($item != "." && $item != "..") { // 判斷是否為真正的文件 if (is_file($src . "/" . $item)) { // 復(fù)制操作 copy($src . "/" . $item, $dest . "/" . $item); } // 判斷是否為真正的目錄 if (is_dir($src . "/" . $item)) { // 回調(diào)方法 $func = __FUNCTION__; // 使用方法 $func($src . "/" . $item, $dest . "/" . $item); } } } // 關(guān)閉目錄 closedir($dir); return "目錄復(fù)制成功!"; } //echo copy_dir('upload','css/upload'); /** * 目錄重命名操作 * @param $oldName // 源目錄名 * @param $newName // 新目錄名 * @return string 提示信息 */ function rename_dir($oldName, $newName) { if (!file_exists($newName)) { if (rename($oldName, $newName)) { return "修改成功!"; } else { return "修改失??!"; } } return "已經(jīng)存在該文件或目錄!"; } //echo rename_dir('css','js'); /** * 目錄剪切操作 * @param $src // 源目錄 * @param $dest // 目標(biāo)目錄 * @return string 提示信息 */ function cut_dir($src, $dest) { // 判斷是否存在目標(biāo)目錄 if (is_dir($dest)) { // 拼接目標(biāo)理解 $dest = $dest . "/" . basename($src); // 判斷目標(biāo)目錄下是否存在相同目錄 if (!file_exists($dest)) { // 判斷并剪切操作 if (rename($src, $dest)) { return "目錄剪切成功!"; } else { return "目錄剪切失??!"; } } else { return "該目錄下已存在此文件!"; } } else { return "目標(biāo)不是目錄!"; } } //echo cut_dir('admin','js'); /** * 目錄讀取操作 * @param $path // 讀取的目錄 * @return array 數(shù)組|失敗 */ function read_dir($path) { $arr = []; $dir = opendir($path); while ($item = readdir($dir)) { if ($item != "." && $item != "..") { if (is_file($path . "/" . $item)) { $arr['file'][] = $item; } if (is_dir($path . "/" . $item)) { $arr['dir'][] = $item; } } } closedir($dir); return $arr; } //var_dump(read_dir('js')); /** * 目錄大小查詢(xún)操作 * @param $path // 需要查詢(xún)大小的目錄 * @return int // 目錄的大小 */ function dir_size($path) { $sum = 0; global $sum; $dir = opendir($path); while ($item = readdir($dir)) { if ($item != "." && $item != "..") { if (is_file($path . "/" . $item)) { $sum += filesize($path . "/" . $item); } if (is_dir($path . "/" . $item)) { $func = __FUNCTION__; $func($path . "/" . $item); } } } return $sum; } //echo trans_byte(dir_size('js')); 操作配置 operation.php: <?php // 操作配置 include "common.php"; // 文件的查看 判斷點(diǎn)擊操作 if ($act == "創(chuàng)建文件"){ // 創(chuàng)建文件操作 $mes = create_file($path."/".$filename); // 設(shè)置提示彈窗 alertMes($mes,$url); }elseif ($act == "showContent"){ $content = read_file($filename); if (strlen($content)){ $newContent = highlight_string($content,true); $str = <<<HERE <table width="100%" bgcolor="#add8e6" cellpadding="5" cellspacing="0"> <tr> <td>{$newContent}</td> </tr> </table> HERE; echo $str; } else{ alertMes('文件為空!請(qǐng)編輯后再查看',$url); } // 文件的修改 判斷點(diǎn)擊操作 }elseif ($act == "editContent"){ // 獲取文件內(nèi)容 $content = file_get_contents($filename); // 制作表單 $str = <<<HERE <form action="index.php?act=doEdit" method="post"> <textarea cols="180" rows="10" name="content">{$content}</textarea> <input type="hidden" name="filename" value="{$filename}"> <input type="submit" value="修改內(nèi)容"> </form> HERE; echo $str; // 判斷操作 }elseif ($act == "doEdit"){ // 獲取修改內(nèi)容 $content = $_REQUEST['content']; // 進(jìn)行修改并判斷 if (file_put_contents($filename,$content)){ $mes = '文件修改成功!'; }else{ $mes = '文件修改失敗!'; } alertMes($mes,$url); // 文件的重命名 判斷操作 }elseif ($act == "renameFile"){ $str = <<<HERE <form action="index.php?act=doRename" method="post"> <label for="newName">請(qǐng)輸入新名稱(chēng):</label> <input type="text" name="newName" placeholder="輸入新名稱(chēng)" id="newName"> <input type="hidden" name="path" value="{$path}"> <input type="hidden" name="filename" value="{$filename}"> <input type="submit" value="重命名"> </form> HERE; echo $str; // 判斷操作 }elseif ($act == "doRename"){ // 接受新名稱(chēng) $newName = $_REQUEST['newName']; // 進(jìn)行修改文件名 $mes = rename_file($filename,$path."/".$newName); // 提示操作 alertMes($mes,$url); // 文件的復(fù)制 }elseif ($act == "copyFile"){ // 制作表單 $str = <<<HERE <form action="index.php?act=doCopyFile" method="post"> <label for="copy">復(fù)制文件到:</label> <input type="text" name="destName" placeholder="復(fù)制文件到:" id="copy"> <input type="hidden" name="path" value="{$path}"> <input type="hidden" name="filename" value="{$filename}"> <input type="submit" value="復(fù)制文件"> </form> HERE; echo $str; // 判斷操作 }elseif($act == "doCopyFile"){ // 接受目標(biāo)目錄 $destName = $_REQUEST['destName']; // 進(jìn)行復(fù)制操作 $mes = copy_file($filename,$path."/".$destName); // 提示操作 alertMes($mes,$url); // 文件的剪切 }elseif ($act == "cutFile"){ $str = <<<HERE <form action="index.php?act=doCutFile" method="post"> <label for="cut">剪切到:</label> <input type="text" name="destName" placeholder="剪切到:" id="cut"> <input type="hidden" name="path" value="{$path}"> <input type="hidden" name="filename" value="{$filename}"> <input type="submit" value="剪切文件"> </form> HERE; echo $str; }elseif($act == 'doCutFile'){ $destName = $_REQUEST['destName']; $mes = cut_file($filename,$path."/".$destName); alertMes($mes,$url); // 下載文件 }elseif ($act == "downFile"){ $mes= dow_file($filename); alertMes($mes,$url); //刪除文件 }elseif ($act == "delFile"){ if (unlink($filename)){ alertMes('文件刪除成功!',$url); }else{ alertMes('文件刪除失敗!',$url); } // 上傳文件 }elseif ($act == "上傳文件"){ $fileInfo = $_FILES['myFile']; $mes = upload_file($fileInfo,$path); alertMes($mes,$url); // 創(chuàng)建文件夾 }elseif($act == "創(chuàng)建文件夾"){ $mes = create_folder($path."/".$dirname); alertMes($mes,$url); // 重命名文件夾 }elseif ($act == "renameFolder"){ $str = <<<HERE <form action="index.php?act=doRenameFolder" method="post">?? ???:天蓬老師?? ??:2019-04-27 17:34:41
???? ??:提交主要代碼就可以了, 現(xiàn)在超出了長(zhǎng)度, 看不完整了.... 下次太長(zhǎng)的代碼, 提交核心代碼就行