2013-09-21 8 views
5

Ich versuche ein Skript zu erstellen, das eine bestimmte Zip-Datei hochladen würde, derzeit "test.zip", und entzippe es dann. Ich habe auf dieser Website einige Antworten zum Entpacken gefunden, aber ich habe keine Ahnung, wie man es auf einem FTP-Server macht. Alles mit PHP Bitte.Laden Sie eine ZIP-Datei auf FTP hoch und entpacken Sie sie mit PHP

Aktuelle Code:

$zip = new ZipArchive; 
$zip->open('test.zip'); 
$zip->extractTo('./'); 
$zip->close(); 

Thanks :) wieder

+0

, der wie es das unzipping tun würde aussieht. Möchten Sie das Programm auch programmatisch übertragen? Vor oder nach dem Entpacken? Zu oder von dem Server, der entpackt? – halfer

Antwort

4

Bevor Sie es entpacken, können Sie die Zip-Datei hochladen, indem Sie ein Formular verwenden (machen Sie Ihren eigenen Admin-Bereich?/Localhost only?). Ich kopierte diese von meinem Code für das Hochladen von Bildern und nur laden ZIP-Dateien HTML-Teil:

<form action='file.php' enctype='multipart/form-data' method='post'> 
    <p>Please Upload a ZIP File.</p> 
    <input type='file' name='file'> 
    <input type='submit'/> 
</form> 

PHP Teil:

$temp = explode(".", $_FILES["file"]["name"])[1]; //Get the extension 
if($temp == "zip"){ 
    move_uploaded_file($_FILES["file"]["tmp_name"],"unzipme.zip") or die("Couldn't upload. Check permissions and retry."); 
      //Relocate home? 
    header("Location: /"); 
    exit(); 
} 

Sie Berechtigungen benötigen, um Ihre Verzeichnisse, www-date zu laden oder sowas ähnliches.

Hoffe, das hilft.

+0

eigentlich meinte ich die www-datengruppe * –

1

Zuerst sollten Sie das Zip-Archiv auf den Server hochladen. Hier ist ein Beispiel, wie grundlegende FTP-Dinge in PHP zu tun.

http://www.php.net/manual/en/ftp.examples-basic.php

Danach sollten Sie in der Lage sein, die Datei auf dem Server mit der Methode entpacken Sie in der Frage beschrieben.

+0

Sry Ich habe vergessen, es zu erwähnen, ich habe bereits ein Skript erstellt, das die ZIP-Datei hochlädt, muss nur auf der Maschine entpacken, ich weiß nicht, wie Sie diese Methode für die Arbeit mit der FTP-Sitzung konfigurieren. – Beater

+0

@Beater Ich sehe nicht, warum Sie Dinge konfigurieren müssen. Wenn sich die Zip-Datei auf dem Rechner befindet und Sie ihren Dateinamen kennen, können Sie sie einfach entpacken, oder? –

1

Sie benötigen entweder Zugriff zum Ausführen von Befehlen oder Programmen auf der Maschine, auf die Sie hochladen, oder die Möglichkeit, ein Skript hochzuladen, das Sie über eine URL ausführen können. Wenn Sie über FTP auf ein Webserver-Verzeichnis hochladen, auf dem PHP ausgeführt werden kann, laden Sie Ihr zip-Archiv und die unzip.php-Datei dort hoch und laden Sie die unzip.php-Seite in Ihren Browser.

+0

Haben keine Art von diesem Zugriff, Dies ist für andere Leute gemacht, um wie PhpBB-Dateien in ihre FTP-Verzeichnis hochladen .. Vielen Dank für den Versuch zu helfen – Beater

+0

Leider ist das Entpacken ein Befehl, der auf dem Rechner ausgeführt werden muss, wo das Entpacken tritt ein. Wenn Sie keinen SSH- oder Telnet-Zugriff haben und das FTP-Konto keinen für den Webzugriff zugänglichen Ordner enthält, können Sie es nach dem Öffnen nicht mehr entpacken. Sie können jedoch eine Manifest-Datei erstellen, die alles beschreibt, was im Zip-Archiv vorhanden ist, und es senden, falls dies alles ist, was Sie brauchen. Ich verstehe nicht, warum Sie sie entzippt haben müssen, wenn es sich nicht um einen Web-zugänglichen Ort handelt. – wwwslinger

0

Dies ist der Code für Extract-Ordner in Ihrem FTP, eine neue PHP-Datei kopiert unter Code erstellen und ausführen:

$path = getcwd(); 

$zip = new ZipArchive; 

$res = $zip->open('yourZippedFolder.zip'); 

if ($res === TRUE) { 

    $zip->extractTo($path.'/maunil/'); 

    $zip->close(); 

    echo 'Successfully Extracted'; 

} 

else 
{ 

echo 'failed to Extract'; 

} 
Verwandte Themen