2015-05-06 14 views
5

Mam klasę FTP, która ma funkcję łączenia, odłączania, przesyłania i pobierania plików na inny serwer FTP.Czy istnieje sposób, aby uzyskać powód, gdy ftp_put nie powiedzie się?

mam tej funkcji i chciałem zalogować powód dlaczego przesyłka się nie powiedzie w pliku tekstowym, ale w oparciu o ftp_put docs, tylko zwraca false w przypadku niepowodzenia:

public function upload($remote_file, $file, $mode = FTP_ASCII) 
{ 
    if (!ftp_put($this->ftp_connection, $remote_file, $file, $mode)) 
    { 
     throw new Exception("There was a problem while uploading $file", 1); 
    } 

    $this->last_uploaded_file = $file; 
    return true; 
} 

Czy istnieje jakiś sposób, aby uzyskać przyczynę niepowodzenia dla ftp_put? I jakie są te powody? Lub tylko komunikat o błędzie mogę zalogować się coś takiego komunikatu generycznego ?:

Błąd przesyłania pliku foo.bar 12:01:01 2015-01-01

Odpowiedz

1

funkcje PHP FTP problem ostrzeżenie z ostatnim komunikatem o błędzie zwróconym przez serwer.

Więc kiedy tak się dzieje:

> STOR /nonexistingfolder/readme.txt 
< 550 Filename invalid 

Dostajesz ostrzeżenie jak:

Ostrzeżenie: ftp_put(): Nazwa pliku nieprawidłowy w test.php na linię 12

Jest brak dalszych informacji. W szczególności nie można włączyć żadnego rejestrowania sesji FTP.


Kiedy pojawia się problem lokalny (jak nieistniejącego pliku lokalnego lub uprawnieniami emisji), pojawi się ostrzeżenie, jak z każdej innej funkcji PHP:

Warning: ftp_put (nonexisting.txt): failed to open stream: Nie ma takiego pliku lub katalogu w test.php na linię 12


powiedział, że to, co znajdę podejrzany jest "Foo.bar H: i: s RMD". Co to jest "H: i: s Y-m-d"? Czy nie udało Ci się przekazać ciągu formatu daty za pomocą funkcji date, używając zamiast tego formatu literackiego?

+0

ahh, więc potrzebuję tylko użyć 'error_get_last()'? – Ceeee

+0

Tak. Zobacz także moją ostatnią edycję (ostatni akapit). –

+0

"H: i: s Y-m-d" to tylko przykład: D (zostanie zastąpiony rzeczywistymi datami w tym formacie) – Ceeee

Powiązane problemy