我在使用 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 />";
}
谢谢你的时间,