我有一个代码,我试图通过 PHP FTP 连接连接到不同的服务器。
我知道我实际上正在连接到服务器。
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
var_dump($login);
Run Code Online (Sandbox Code Playgroud)
当我vardump的$login,我收到了TRUE。
当我尝试上传文件时,出现“上传文件错误”, 因此我尝试仅在连接上拉出文件列表:
$file_list = ftp_nlist($ftp_conn, ".");
var_dump($file_list);
Run Code Online (Sandbox Code Playgroud)
它只是返回bool(false)。
我知道连接有文件,因为我可以使用相同的凭据通过 FileZilla 查看它们。
知道可能有什么问题吗?是否可能存在不允许我从共享服务器使用此 PHP 脚本的服务器设置?
的有问题的最典型的原因ftp_list(ftp_nlist,ftp_put需要单独FTP数据连接等功能)是PHP默认为激活模式。并且在 99% 的情况下,必须切换到被动模式,才能使目录列表和传输工作。使用ftp_pasv函数。
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass) or die("Login failed");
// turn passive mode on
ftp_pasv($ftp_conn, true) or die("Unable switch to passive mode");
Run Code Online (Sandbox Code Playgroud)
请参阅我关于主动和被动 FTP 连接模式的文章。
| 归档时间: |
|
| 查看次数: |
994 次 |
| 最近记录: |