73 lines
2.2 KiB
PHP
73 lines
2.2 KiB
PHP
<?php
|
|
// Folder, w którym znajdują się pliki ZIP
|
|
define('ZIP_DIRECTORY', __DIR__); // Możesz zmienić na dowolny katalog
|
|
|
|
// Upewnij się, że katalog istnieje
|
|
if (!is_dir(ZIP_DIRECTORY)) {
|
|
mkdir(ZIP_DIRECTORY, 0755, true);
|
|
}
|
|
|
|
// Funkcja do pobrania listy plików ZIP
|
|
function getZipFiles($directory) {
|
|
return glob($directory . '/*.zip');
|
|
}
|
|
|
|
// Obsługa rozpakowywania pliku
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['zip_file'])) {
|
|
$zipFile = $_POST['zip_file'];
|
|
$zipPath = ZIP_DIRECTORY . '/' . basename($zipFile);
|
|
|
|
if (file_exists($zipPath)) {
|
|
$zip = new ZipArchive;
|
|
if ($zip->open($zipPath) === TRUE) {
|
|
$extractPath = ZIP_DIRECTORY;
|
|
|
|
// Tworzenie katalogu docelowego, jeśli nie istnieje
|
|
if (!is_dir($extractPath)) {
|
|
mkdir($extractPath, 0755, true);
|
|
}
|
|
|
|
$zip->extractTo($extractPath);
|
|
$zip->close();
|
|
|
|
echo "<p>Plik <strong>$zipFile</strong> został pomyślnie rozpakowany do: <strong>$extractPath</strong></p>";
|
|
} else {
|
|
echo "<p>Nie udało się otworzyć pliku ZIP: <strong>$zipFile</strong></p>";
|
|
}
|
|
} else {
|
|
echo "<p>Plik ZIP nie istnieje: <strong>$zipFile</strong></p>";
|
|
}
|
|
}
|
|
|
|
// Pobranie listy plików ZIP
|
|
$zipFiles = getZipFiles(ZIP_DIRECTORY);
|
|
?>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="pl">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Rozpakowywanie plików ZIP</title>
|
|
</head>
|
|
<body>
|
|
<h1>Lista plików ZIP na serwerze</h1>
|
|
|
|
<?php if (empty($zipFiles)): ?>
|
|
<p>Brak plików ZIP w katalogu: <strong><?php echo ZIP_DIRECTORY; ?></strong></p>
|
|
<?php else: ?>
|
|
<form method="post">
|
|
<label for="zip_file">Wybierz plik ZIP do rozpakowania:</label>
|
|
<select name="zip_file" id="zip_file" required>
|
|
<?php foreach ($zipFiles as $file): ?>
|
|
<option value="<?php echo basename($file); ?>">
|
|
<?php echo basename($file); ?>
|
|
</option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
<button type="submit">Rozpakuj</button>
|
|
</form>
|
|
<?php endif; ?>
|
|
</body>
|
|
</html>
|