Maison > Questions et réponses > le corps du texte
P粉2259617492023-08-25 18:30:59
Cela a fonctionné :
// 连接并登录到FTP服务器 $ftp_server = "主机"; $ftp_username = "用户名"; $ftp_userpass = "密码"; $ftp_conn = ftp_connect($ftp_server) or die("无法连接到 $ftp_server"); $login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass); $file ="$abc"; // 上传文件 if (ftp_put($ftp_conn, "/$abc" , $file, FTP_ASCII)){ echo "成功上传文件 $file。"; } else { echo "上传文件 $file 出错"; } // 关闭连接 ftp_close($ftp_conn);
P粉0566180532023-08-25 15:46:37
mène à ftp_put
(或任何其他传输命令,如ftp_get
、ftp_nlist
、ftp_rawlist
、ftp_mlsd
)出现问题的最常见原因是PHP默认为主动模式。在99%的情况下,需要切换到被动模式才能使传输正常工作。使用ftp_pasv
fonction .
$connect = ftp_connect($ftp) or die("无法连接到主机"); ftp_login($connect, $username, $pwd) or die("授权失败"); // 打开被动模式 ftp_pasv($connect, true) or die("无法切换到被动模式");Appelé après
ftp_pasv
必须在ftp_login
. L'appeler avant n'a aucun effet.
Voir aussi :
De plus, si votre serveur FTP signale une mauvaise adresse IP en répondant aux commandes PASV
(ce qui est assez courant si le serveur est derrière un pare-feu/NAT), vous devrez peut-être la résoudre en utilisant :
ftp_set_option($connect, FTP_USEPASVADDRESS, false);
Voir PHP FTP + Serveur FTP passif derrière NAT.
Bien que dans ce cas, la bonne solution soit de réparer le serveur.