2010-07-13 2 views
1

ne peut pas le faire!PHP: liste les fichiers sur le serveur FTP?

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>FTP Download</title> 
</head> 
<body> 
    <?php 

    set_time_limit(300);//for setting 
    $path='/userupload'; 
    $ftp_server='202. …'; 
    $ftp_server_port="21"; 
    $ftp_user_name='al…'; 
    $ftp_user_pass="mypassword"; 

    // set up a connection to ftp server 
    $conn_id = ftp_connect($ftp_server, $ftp_server_port); 
    // login with username and password 
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

    // check connection and login result 
    if ((!$conn_id) || (!$login_result)) { 
     echo "Fail</br>"; 
    } else { 
     echo "Success</br>"; 
     // enabling passive mode 
     ftp_pasv($conn_id, true); 
     // get contents of the current directory 
     $contents = ftp_nlist($conn_id, $path); 
     // output $contents 
     var_dump($contents); 
    } 

    // close the FTP connection 
    ftp_close($conn_id); 

    ?> 
</body> 
</html> 

aucune idée de ce que je fais mal? il renvoie toujours "Success bool (false)"! La connexion fonctionne donc, mais les fichiers ne seront pas listés. Des idées?

concernant

Répondre

0

ce que je fais mal?

vous avez un manque de débogage.

La vérification du résultat de la connexion n'est pas suffisante. doit également vérifier chaque opération.

est-ce que ftp_pasv() a fonctionné?
est là/userupload dir?

+0

est-ce que ftp_pasv() a fonctionné? -> Je n'en ai aucune idée! y at-il un répertoire/userupload? -> bien sûr, il y en a! – matt

+0

@mathiregister vous avez mal compris. Vous n'êtes pas obligé de répondre à ces questions ici. vous devez écrire du code qui vérifie chaque résultat d'opération. et trouver le point où les choses vont mal –

+0

comment puis-je vérifier si ftp_pasv() a fonctionné? – matt

0

ce que Shrapnel dit est que vous pouvez avoir plus de débogage que vous avez obtenu si vous avez

//enabling passive mode ftp_pasv($conn_id, true);

vous pouvez utiliser if(ftp_pasv($conn_id, true)){// it worked :) }else{// it didnt work :(}

Mais ce que je pense est faux est votre chemin, si le dossier de la maison de votre utilisateur ftp atterrit à l'intérieur ici/useruploads/im ici puis pour lister les fichiers votre chemin devrait être $path='/'; sinon ce que vous dites au ftp de faire est de lister le répertoire "useruploads/useruploads" qui n'est pas aller d'exister.

Questions connexes