2010-08-02 4 views
6

Mam rację na początku próbując napisać jakiś kod PHP do uruchomienia na Linux-ie na serwerze EC2, który odczyta pliki z mojego wiadra S3, zapakuje je, a następnie zapisze plik zip do zasobnika.PHP ZipArchive co oznaczają wartości statusu?

Natychmiast natknąłem się na problemy z tworzeniem zwykłego archiwum zip z niektórych obrazów na lokalnym dysku instancji EC2, używam skryptu do przetestowania pomysłu z podręcznika PHP online, a także wypróbowałem scenariusz Davida Walsha - http://davidwalsh.name/create-zip-php, który wygląda na wspaniały. Ani wynik w rzeczywistej pliku zip i oba dają mi różne wyniki status -

pierwszy fragment z podręcznika PHP (do której dodaję zmienną $ thisdir) -

<?php 
$zip = new ZipArchive(); 
$filename = "test112.zip"; 
$thisdir = "/uploads/"; 
if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) { 
    exit("cannot open <$filename>\n"); 
}  
$zip->addFromString("testfilephp.txt" . time(), "#1 This is a test string added as testfilephp.txt.\n"); 
$zip->addFromString("testfilephp2.txt" . time(), "#2 This is a test string added as testfilephp2.txt.\n"); 
$zip->addFile($thisdir . "/too.php","/testfromfile.php"); 
echo "numfiles: " . $zip->numFiles . "\n"; 
echo "status:" . $zip->status . "\n"; 
$zip->close(); 
?> 

wyjściowego =

numfiles: 2 Stan: 11

nie widzę żadnego pliku zip w moim folderze 'przesyłanych zdjęć'

Drugi kawałek kodu próbuję (i przyzwyczajenie pisać kod tutaj) - mijam prawdziwych plików i zwraca

archiwum zip zawiera 2 pliki ze statusem 0

Jakie są komunikaty o stanie. Sprawdziłem, czy mam zainstalowane odpowiednie biblioteki, patrząc na wynik działania funkcji phpinfo(); i pod nagłówkiem ZIP widzę -

pocztowy włączona
Extension version $ id: php_zip.c, v 1.1.2.43 2008/01/18 00:51:38 pajoye Exp $
wersja pocztowy 08.01.11
wersja 0.8.0 Libzip kompatybilne

Sprawdziłem uprawnienia plików plików PHP z kodem mam wykonującego i są ustawione na 777, jak to folder próbuję dodać ziparchive do. Wiem, że nie powinno to pozostać na poziomie 777.

żadnych pomysłów, dlaczego nie widzę pliku zip? co oznaczają wartości statusu? Czy istnieje dobry tutorial do używania PHP do rozpakowywania plików na wiadrze Amazon S3? lub dobre narzędzie do zapewnienia tej funkcjonalności?

okrzyki

+0

Naprawiłeś problem? Jeśli tak, czy mógłbyś wyjaśnić, w jaki sposób? Mam te same problemy ... –

Odpowiedz

1

W moim przypadku mam kod błędu 11 podczas otwierania pliku zip do czytania . Ścieżka i uprawnienia są w porządku. Właśnie zmieniłem SEPARATOR KATALOGOWY z tylnego ukośnika (\), aby przesunąć ukośnik (/) i zadziałało. Dziwne jest to, że ścieżki forward ukośnika (/) są w systemie Linux, gdzie pracuję w systemie Windows Server 2003.