【发布时间】:2011-06-21 19:04:38
【问题描述】:
我尝试使用 PHP 5.3.3 (linux build) 中的 ftp_get 从 FTP 服务器获取文件。 可以登录,可以列出文件,但是ftp_get命令没有下载文件。
这是我正在使用的代码。
$ftp_user_name = DBUSER;
$ftp_user_pass = DBUSERPASS;
$ftp_server = HOST;
$local_file = "poutarde.odt";
$server_file = "poutarde.odt";
// set up a connection to ftp server
$conn_id = ftp_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// turn passive mode on
ftp_pasv($conn_id, true);
// try to download $server_file and save to $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
echo "Successfully written to $local_file\n";
} else {
echo "There was a problem\n";
}
// close the connection
ftp_close($conn_id);
“poutarde.odt”文件位于 FTP 的根目录。
我从客户端(filezilla)检查了 FTP 下载,一切正常。 但是,使用 ftp_get,我什么也得不到(除了回显“There was a problem”),甚至没有 PHP 错误,它只是失败了。
感谢您的帮助。
里诺
【问题讨论】:
-
使用 Wireshark 嗅探 FTP 会话,并检查您的 PHP 脚本是否可以写入 $local_file。
-
您可能需要确保 ftp_connect 和 ftp_login 没有返回 false,您的代码当前假设连接和登录正常。
-
我投票结束这个问题,因为这个问题似乎是由文件权限不足引起的,而不是由代码本身的任何内容引起的。
-
尝试切换被动模式。它对我有用。