2015-05-06 15 views
5

Ich habe eine FTP-Klasse, die Funktionen zum Verbinden, Trennen, Hochladen und Herunterladen von Dateien auf den anderen FTP-Server hat.Gibt es eine Möglichkeit, den Grund herauszufinden, wenn ftp_put fehlschlägt?

ich diese Funktion haben, und ich wollte den Grund einzuloggen, warum der Upload in einer Textdatei aus, aber auf der Grundlage der ftp_put docs, es nur false zurück, im Fehlerfall:

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; 
} 

Gibt es eine Möglichkeit zu erhalten Sie den Grund des Scheiterns für ftp_put? Und was sind diese Gründe? Oder die einzige Fehlermeldung ich log könnte, ist so etwas wie eine allgemeine Meldung ?:

Fehler beim Hochladen der Datei Foo.bar 12:01:01 2015-01-01

Antwort

1

PHP FTP-Funktionen eine Warnung ausgeben mit der letzten Fehlermeldung, die vom Server zurückgegeben wird.

Also, wenn dies der Fall ist:

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

Sie erhalten eine Warnung wie:

Warnung: ftp_put(): Dateiname ungültig in test.php on line 12

Es gibt Keine weiteren Informationen bereitgestellt. Insbesondere können Sie keine Protokollierung von FTP-Sitzungen aktivieren.


Wann ist es ein lokales Problem (wie ein nicht vorhandenes lokale Datei oder Berechtigungsproblem), eine Warnung erhalten, wie bei jeder anderen PHP-Funktion:

Warnung: ftp_put (nonexisting.txt): failed to open stream: No such file or directory in test.php on line 12


das heißt, was ich verdächtig finden die "Foo.bar H: i: s Ymd" ist. Was ist das "H: i: s Y-m-d"? Haben Sie die Datumsformat-Zeichenkette nicht über die date-Funktion übergeben, sondern stattdessen die Formatzeichenfolge literary?

+0

ahh, also brauche ich nur 'error_get_last()'? – Ceeee

+0

Ja. Siehe auch meine letzte Bearbeitung (der letzte Absatz). –

+0

"H: ich: s Y-m-d" ist nur ein Beispiel: D (wird mit echten Daten mit diesem Format ersetzt) ​​ – Ceeee

Verwandte Themen