2015-05-06 12 views
5

Ho una classe FTP che ha la funzione di collegare, scollegare, caricare e scaricare file sull'altro server ftp.C'è un modo per ottenere il motivo quando fallisce ftp_put?

ho questa funzione e ho voluto registrare il motivo per cui il caricamento non riesce in un file di testo, ma sulla base dei ftp_put documentazione, esso restituisce solo falso in caso di fallimento:

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

Esiste un modo per ottenere il motivo del fallimento per ftp_put? E quali sono queste ragioni? O l'unico messaggio di errore che potrei accedere è qualcosa come un messaggio generico ?:

caricamento del file Errore Foo.bar 12:01:01 2015-01-01

risposta

1

funzioni PHP FTP emettere un avvertimento con l'ultimo messaggio di errore restituito dal server.

Così, quando questo accade:

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

Si ottiene un avvertimento del tipo:

Attenzione: ftp_put(): Nome del file non valida in test.php on line 12

C'è non più informazioni fornite. In particolare non è possibile abilitare alcun tipo di registrazione sessione FTP.


Quando c'è un problema locale (come un problema di non-esistente file o permessi locale), si ottiene un avvertimento, come con qualsiasi altra funzione PHP:

Attenzione: ftp_put (nonexisting.txt): non è riuscito ad aprire flusso: Nessun file o directory in test.php on line 12


detto questo, quello che trovo sospetto è il "Foo.bar H: i: s Ymd". Qual è il "H: i: s Y-m-d"? Non sei riuscito a passare la stringa del formato della data attraverso la funzione date, utilizzando invece la stringa di formato letterario?

+0

ahh, quindi ho solo bisogno di usare 'error_get_last()'? – Ceeee

+0

Sì. Vedi anche la mia ultima modifica (l'ultimo paragrafo). –

+0

"H: i: s Y-m-d" è solo un esempio: D (sarà sostituito con date reali con quel formato) – Ceeee

Problemi correlati