Hallöchen ich suche jemanden der mir helfen könnte bei folgendem Problem....
ich wollte ein script, dass nur *.zip hochladen lässt, zip entpackt und den inhalt in einen vorhandenen ordner verschiebt....
gesagt ist es halt einfach....
das script ist gerade soweit, dass es zip hochladen tut (alles andere auch),
leider entpackt er nicht sondern wirft eine fehlermeldung aus...
Fatal error: Cannot instantiate non-existent class: ziparchive in status2.php on line 6
ich scripte mal hier was ich bis jetzt habe:
meine upform.php
meine upload-zip.php
und die status2.php datei wo die *.zip entpacken soll....
ich wollte ein script, dass nur *.zip hochladen lässt, zip entpackt und den inhalt in einen vorhandenen ordner verschiebt....
gesagt ist es halt einfach....
das script ist gerade soweit, dass es zip hochladen tut (alles andere auch),
leider entpackt er nicht sondern wirft eine fehlermeldung aus...
Fatal error: Cannot instantiate non-existent class: ziparchive in status2.php on line 6
ich scripte mal hier was ich bis jetzt habe:
meine upform.php
PHP-Code:
<p>Dateiupload (nur *.zip Dateien)</p>
<p>jede *.zip Datei höchstens 5 MB groß.</p>
<form method="post" action="upload-zip.php<? echo '?dir='.$_GET['dir'].'&datei='.$_FILES["datei"]; ?>" enctype="multipart/form-data">
Datei:
<input type="file" name="datei" size="40">
<input type="submit" name="Submit" value="Senden">
</form>
</body>
</html>
PHP-Code:
<?
$dir3 = $_GET['dir'];
$file = $_GET['datei'];
$dir2 = "../upload/";
// Prüfen des Array $_FILES
if (isset($_FILES["datei"])) {
// Upload-Status
if ($_FILES["datei"]["error"] == UPLOAD_ERR_OK) {
// Muster zur Überprüfung der im Dateinamen
// enthaltenen Zeichen (Optional)
$regExp = "/^[a-z_]([a-z0-9_-]*\.?[a-z0-9_-])*\.[a-z]{3,4}$/i";
// Dateiname und Dateigrösse
if (preg_match($regExp,$_FILES["datei"]["name"]) && $_FILES["datei"]["size"] > 0 && $_FILES["datei"]["size"] < 25000000) {
// Temporäre Datei in das Zielverzeichnis
// des Servers verschieben.
move_uploaded_file($_FILES["datei"]["tmp_name"],$dir2.$dir3."/".$_FILES["datei"]["name"]);
// Redirect zur Erfolgs-Meldung
$h111 = $_FILES['datei']['name'];
?>
<form method="post" action="status2.php<? echo '?dir='.$_GET['dir'].'&datei='.$_FILES['datei']['name']; ?>">
<?
echo "Datei hochgeladen<br>";
echo "jetzt musst du noch die Datei entpacken und das machst du <a href='status2.php?dir=$dir3&datei=$h111'>hier</a>";
}
else {
echo "Fehler: Im Dateinamen oder Dateigrössen Limit!";
}
}
else {
echo "Fehler: Während der Übertragung aufgetreten!";
}
}
else {
echo "Fehler: Dateiupload fehlgeschlagen!";
}
?>
PHP-Code:
<?php
$dir = $_GET['dir'];
$file = $_GET['datei'];
$dir2 = '../upload/';
$zip = new ZipArchive;
if ($zip->open($dir2.$dir."/".$file) === TRUE) {
$zip->extractTo($dir2.$dir);
$zip->close();
echo '<br>Datei wurde hochgeladen, extrahiert und sind jetzt zu sehen';
unlink ($dir2.$dir."/".$file);
} else {
echo '<br>Datei wurde nicht hochgeladen, weil es war keine *.zip datei';
}
?>
Kommentar