我对ftp_get有一点问题。在Centos 6上运行的本地开发服务器上运行时,该脚本不起作用。
我已经完成了对Stack Overflow的一些研究,并尝试了大部分解决方案而没有让它发挥作用。
我在运行Centos 5.x + cPanel的生产服务器上测试了相同的脚本并且它正在运行。
我想知道在本地服务器上会出现什么情况?
是否有任何特定的文件传输设置可以使用?
这是我到目前为止所尝试的事项列表:
错误,error_reporting(E_ALL)
并查看是否有任何错误。他们没有。
被动连接,ftp_pasv($connection, true)
但它没有任何改变。
传输模式,尝试了FTP_BINARY和FTP_ASCII。什么都没有改变。
尝试使用文件处理程序保存在本地服务器上,但也没有。
原始脚本批量运行(下载具有指定文件名的文件夹中的所有文件)。在运行该脚本时,我可以说3/4的文件成功转移到了“开发”文件中。服务器。
说只有1/4的人会失败'。因此,以下脚本用于对批量传输期间失败的某些文件进行故障排除/测试下载。
他们也无法使用此脚本进行传输。
我检查了远程服务器上的所有权限(chmod)。一切都设定为666。
这是我正在使用的代码。它与php.net上的示例非常相似
// Connection to ftp
$connection = ftp_connect($hostname);
// Login to the FTP
$login = ftp_login($connection, $username, $password);
// Passive might help?
ftp_pasv($connection, true);
// Test login
if ((!$connection) || (!$login)) {
echo "FTP Connection failed<br /><br />";
exit;
} else {
echo "Connection success<br /><br />";
}
$local_file = 'file.zip';
$server_file = 'file.zip';
// Download and save file
if (ftp_get($connection, $local_file, $server_file, FTP_ASCII)){
echo "Download win <br />";
} else {
echo "Download failed <br />";
}
感谢您的时间,
答案 0 :(得分:1)
首先尝试从当地centos机器的命令行/ shell检查相同的东西。使用“ftp”命令,看看它是否在那里工作。大多数情况下,对我来说这似乎是一个防火墙问题。