2010-10-05 5 views
0

Je développe une application PHP sur IIS 7.5, qui utilise des commandes FTP PHP. Ces codes fonctionnent tous, sauf ftp_size().Commande CMD> Commande de taille FTP

Je l'ai testé:

cmd.exe > ftp host > username > password > SIZE filename = Invalid Command

Cependant, si j'accéder au site FTP via un navigateur Internet, la taille du fichier est affiché. Dois-je installer des extensions FTP, et si oui, lesquelles et où puis-je les obtenir?

Voici le code PHP:

<?php 
// FTP Credentials 
$ftpServer = "www.domain.com"; 
$ftpUser = "username"; 
$ftpPass = "password"; 

// Unlimited Time 
set_time_limit(0); 

// Connect to FTP Server 
$conn = @ftp_connect($ftpServer) 
or die("Couldn't connect to FTP server"); 

// Login to FTP Site 
$login = @ftp_login($conn, $ftpUser, $ftpPass) 
or die("Login credentials were rejected"); 

// Set FTP Passive Mode = True 
ftp_pasv ($conn, true); 

// Build the file list 
$ftp_nlist = ftp_nlist($conn, "."); 

// Alphabetical sorting 
sort($ftp_nlist); 

// Display Output 
foreach ($ftp_nlist as $raw_file) { 
    // Get the last modified time 
    $mod = ftp_mdtm($conn, $raw_file); 
    // Get the file size 
    $size = ftp_size($conn, $raw_file); 
    // Size is not '-1' => file 
     if (!(ftp_size($conn, $raw_file) == -1)) { 
     //output as file 
     echo "Filename: $raw_file<br />"; 
     echo "FileSize: ".number_format($size, '')."Kb</br>"; 
     echo "Last Modified: ".date("d/m/Y H:i", $mod)."</br>"; 
     } 
} 
?> 
+0

Voulez-vous dire 'ftp_size()' qui ne fonctionne pas? http://www.php.net/manual/fr/function.ftp-size.php Que retourne-t-il? –

+0

Ohh. . .yeah, faute de frappe, oui ça aurait dû être ftp_size(). Il ne retourne rien, juste un espace vide où la taille devrait être affichée –

+0

Pouvez-vous coller votre code? – Kev

Répondre

0

Je viens de rencontrer votre code contre un de nos serveurs FTP et il fonctionne très bien. Il est probable que le serveur FTP que vous testez ne supporte pas réellement la commande SIZE après tout.

La raison pour laquelle votre navigateur Web fonctionne, et je l'ai vérifié avec un renifleur de paquets contre Firefox et Internet Explorer, c'est parce qu'ils émettent la commande LIST et analysent les résultats.