导读:Warning: ftp_put() 问题的解决办法之被动模式。ftp_put上传文件至服务器出现Warning: ftp_put(),代码如下:<?php$ftp_server='xxxx...
Warning: ftp_put() 问题的解决办法之被动模式。
ftp_put上传文件至服务器出现Warning: ftp_put(),代码如下:
<?php
$ftp_server='xxxx';
$ftp_user_name='xxxx';
$ftp_user_pass='xxxx';
$conn = ftp_connect($ftp_server) or die("Could not connect");
ftp_login($conn,$ftp_user_name,$ftp_user_pass);
echo ftp_put($conn,"a.txt","a.txt",FTP_ASCII);
ftp_close($conn);
?>
网上查到的出错原因是:
服务器一般都是放在防火墙后面,因此 FTP 客户端程序如果需要穿越防火墙,需要开启被动模式,否则执行任何 ftp 命令都没有响应,直到出现 “最大执行时间超时” 的致命错误,导致程序终止运行...
给出的解决方式是:
开启 FTP 被动模式,正确代码如下:
<?php
$ftp_server='xxxx';
$ftp_user_name='xxxx';
$ftp_user_pass='xxxx';
$conn = ftp_connect($ftp_server) or die("Could not connect");
ftp_login($conn,$ftp_user_name,$ftp_user_pass);
ftp_pasv($conn, true);//开启被动模式
echo ftp_put($conn,"a.txt","a.txt",FTP_ASCII);
ftp_close($conn);
?>