2013-09-21 20 views
5

Sto provando a creare uno script che carichi un certo file zip, attualmente "test.zip", e poi lo decomprimo. Ho trovato alcune risposte in questo sito su come decomprimere ma non ho idea di come farlo su un server FTP. Tutto usando PHP per favore.Carica un file .zip su FTP e decomprimilo usando PHP

codice attuale:

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

Thanks :) ancora

+0

che sembra farebbe la decompressione. Vuoi programmarlo anche via FTP? Prima o dopo la decompressione? Da o verso il server che sta decomprimendo? – halfer

risposta

4

Prima di decomprimerlo, è possibile caricare lo zip utilizzando un modulo (creare la propria area di amministrazione?/Solo localhost?). Ho copiato questo dal mio codice per il caricamento delle immagini e sarà solo caricare i file .zip parte HTML:

<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 parte:

$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(); 
} 

È necessario autorizzazioni per caricare le directory, www-data o qualcosa di simile.

Spero che questo aiuti.

+0

in realtà intendevo il gruppo www-data * –

1

primo luogo si dovrebbe caricare l'archivio zip al server. Ecco un esempio di come fare cose di base su FTP in PHP.

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

Dopo di che si dovrebbe essere in grado di decomprimere il file sul server utilizzando il metodo che hai descritto nella domanda.

+0

Sry Ho dimenticato di dirlo, ho già creato uno script che carica lo ZIP, solo bisogno di decomprimerlo sulla macchina, non so come configurare questo metodo per lavorare con la sessione FTP. – Beater

+0

@Beater Non vedo perché è necessario configurare le cose. Se il file zip si trova sulla macchina e conosci il suo nome file, puoi semplicemente decomprimerlo, giusto? –

1

È necessario accedere per eseguire comandi o programmi sulla macchina in cui si sta caricando o per caricare anche uno script che è possibile eseguire tramite un URL. Se stai caricando tramite FTP in una directory del server web che può eseguire PHP, quindi caricare il tuo archivio zip e il file unzip.php lì e caricare la pagina unzip.php nel browser.

+0

Non ho alcun tipo di accesso, Questo è fatto per altre persone per caricare file PhpBB nella loro directory FTP .. Grazie per aver cercato di aiutare – Beater

+0

Purtroppo, la decompressione è un comando che deve essere eseguito sulla macchina in cui la decompressione si verifica. Se non si dispone dell'accesso SSH o telnet e se l'account FTP non include una cartella accessibile dal Web, non sarà possibile decomprimerlo una volta che è attivo. Puoi, tuttavia, creare un file manifest descrivendo tutto nell'archivio zip e inviarlo insieme se è tutto ciò che ti serve. In realtà non capisco perché ne avresti bisogno decompresso se non si tratta di una posizione accessibile al web. – wwwslinger

0

Questo è il codice per la cartella nel vostro estratto FTP, creare una nuova copia file PHP sotto il codice ed eseguirlo:

$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'; 

} 
Problemi correlati