就像在这个问题中讨论的那样,ftp_fget
当我在本地开发环境中时,我无法从 FTP 下载文件:
警告:ftp_fget():为 myFile.csv 打开 BINARY 模式数据连接
正如建议的那样,使用ftp_pasv($conn_id, TRUE);
效果很好,但是当我在生产服务器上时,我不想使用 FTP 被动模式。
如何检查何时ftp_pasv
必须使用?
我试过这个:
<?php
$conn_id = ftp_connect(FTP_SERVER, FTP_PORT, 30);
$handle = fopen(dirname(__FILE__).'/data/temp.csv', 'w');
if (ftp_fget($conn_id, $handle, FTP_FILENAME, FTP_BINARY, 1)) {
copy($handle,dirname(__FILE__).'/data/myFile.csv');
}
else {
// Try with passive mode
ftp_pasv($conn_id, TRUE);
if (ftp_fget($conn_id, $handle, FTP_FILENAME, FTP_BINARY, 1)) {
copy($handle,dirname(__FILE__).'/data/myFile.csv');
}
else {
echo "Error downloading the file";
}
}
ftp_close($conn_id);
但它给了我:
警告:ftp_fget():数据连接意外关闭,文件传输 /myFile.csv 被客户端中止。