2013-09-21 123 views
5

Próbuję utworzyć skrypt, który prześle określony plik zip, obecnie "test.zip", a następnie rozpakuje go. Na tej stronie znalazłem odpowiedzi na temat rozpakowania, ale nie miałem pojęcia, jak to zrobić na serwerze FTP. Wszystko za pomocą PHP Proszę.Prześlij plik .zip na FTP i rozpakuj go za pomocą PHP

Aktualny kod:

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

Dzięki jeszcze raz :)

+0

który wygląda jak by to zrobić rozpakować. Czy chcesz również programowo go FTP? Przed lub po rozpakowaniu? Do lub z serwera, który rozpakowuje? – halfer

Odpowiedz

4

Przed rozpakowaniem możesz przesłać zip za pomocą formularza (utworzyć własny obszar administracyjny?/Localhost tylko?). Skopiowałem to z mojego kodu do przesyłania zdjęć i przesłać tylko Zip część HTML: Część

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

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

Musisz uprawnień, aby przesłać do katalogów www-data lub coś podobnego.

Mam nadzieję, że to pomoże.

+0

w rzeczywistości miałem na myśli grupę danych www * –

1

Najpierw należy przesłać archiwum zip na serwerze. Oto przykładowy sposób wykonywania podstawowych zadań FTP w PHP.

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

Po tym powinieneś być w stanie rozpakować plik na serwer za pomocą metody, opisanej w pytaniu.

+0

Sry, zapomniałem o tym wspomnieć, stworzyłem już skrypt, który przesyła ZIP, wystarczy rozpakować go na komputerze, nie wiem jak skonfigurować tę metodę do pracy z sesją FTP. – Beater

+0

@Beater Nie widzę powodu, dla którego musisz skonfigurować rzeczy. Jeśli plik zip znajduje się na komputerze i znasz jego nazwę, możesz go po prostu rozpakować, prawda? –

1

Musisz mieć dostęp do wykonywania poleceń lub programów na komputerze, do którego przesyłasz dane, lub możliwość przesłania skryptu, który możesz wykonać za pomocą adresu URL. Jeśli przesyłasz za pośrednictwem FTP do katalogu serwera sieciowego, na którym można uruchomić PHP, prześlij archiwum zip i plik unzip.php, a następnie załaduj stronę unzip.php w przeglądarce.

+0

Nie ma żadnego rodzaju dostępu, Jest on przeznaczony dla innych osób do przesyłania plików PhpBB do ich katalogu FTP. Dzięki za pomoc – Beater

+0

Niestety, rozpakowanie to polecenie, które musi zostać uruchomione na komputerze, na którym rozpakowano występuje. Jeśli nie masz dostępu do SSH lub telnetu, a konto FTP nie zawiera folderu dostępnego w sieci, nie będzie można go rozpakować, gdy będzie już dostępny. Możesz jednak utworzyć plik manifestu opisujący wszystko w archiwum zip i wysłać go, jeśli to wszystko, czego potrzebujesz. Właściwie nie rozumiem, dlaczego potrzebujesz ich rozpakować, jeśli nie jest to lokalizacja dostępna w sieci. – wwwslinger

0

Jest to kod do folderu ekstraktu w swoim FTP, należy utworzyć nową kopię pliku php poniżej kod i uruchomić go:

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

}