我正在IIS 7.5上开发一个PHP应用程序,它使用PHP FTP命令。
除了ftp_size()
之外,这些都有效。
我测试过了:
cmd.exe > ftp host > username > password > SIZE filename = Invalid Command
但是,如果我通过Internet浏览器访问FTP站点,则会显示文件大小。
我是否需要安装FTP扩展程序,如果是,我应该在哪些地方安装它们?
这是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 :(得分:0)
我刚刚在我们的一个FTP服务器上运行你的代码,它运行得很好。您测试的FTP服务器很可能实际上并不支持SIZE
命令。
您的网络浏览器工作的原因,我使用针对Firefox和Internet Explorer的数据包嗅探器进行了检查,原因是他们发出LIST
命令并解析结果。