ftp_login期望参数1是资源

mic*_*l b 6 html php ftp upload file

我正在尝试使用FTP上传一些文件,我遇到以下错误:

警告:ftp_login()期望参数1是资源,第65行/home/content/98/10339998/html/upload.php中给出的布尔值FTP连接遇到错误!尝试连接到thelegendmaker.net ....

引起的:

// set up a connection to ftp server
$conn_id = ftp_connect("thelegendmaker.net");

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会这样?我尝试过不使用引号,双引号和单引号,但没有工作.

Nul*_*teя 11

问题的根本在于,当ftp_connect()无法连接到FTP服务器时,它返回FALSE而不是它通常返回的资源链接标识符.使用ping检查您的FTP服务器是否处于活动状态

你可以这样做

if($conn_id){
     // login with username and password
     $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
}
Run Code Online (Sandbox Code Playgroud)


小智 5

如果不成功,ftp_connect将返回false.这将导致您遇到的错误消息而不是登录.

我建议使用一个条件,以避免在连接失败时尝试登录.

你有几个选择:

// set up a connection to ftp server
$conn_id = ftp_connect("thelegendmaker.net") or die("Unable to connect to server.");

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
Run Code Online (Sandbox Code Playgroud)

要么

// set up a connection to ftp server
$conn_id = ftp_connect("thelegendmaker.net");

// login with username and password
if($conn_id !== false) $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
Run Code Online (Sandbox Code Playgroud)

因为我收到了从服务器到ping的响应.我的猜测是你没有正确配置你的FTP服务器.