Warning: ftp_put() 问题的解决办法之被动模式

piaoling  2012-03-22 18:27:16

Warning: ftp_put() 问题的解决办法之被动模式

问题代码如下:<?php
$conn = ftp_connect("ftp.bacysoft.cn") or die("Could not connect");
ftp_login($conn,"test","test1234");
ftp_put($conn,"target.rar","local.rar",FTP_BINARY,0);
ftp_close($conn);
echo "done";
?>代码说明:
本代码通过PHP服务器在后台使用 FTP 协议将本地文件 “local.rar” 上传到远程 FTP 文件服务器上,并保存为 “target.rar”。即 PHP 服务器作为 FTP Client 上传文件到 FTP Server...

以上代码运行后出错,错误提示如下:Warning: ftp_put() : Opening BINARY mode data connection for target.rar. in E:wwwrootbacysoftwwwroottesttemp.php on line 4

Fatal error: Maximum execution time of 60 seconds exceeded in E:wwwrootbacysoftwwwroottesttemp.php on line 5出错原因:
服务器一般都是放在防火墙后面,因此 FTP 客户端程序如果需要穿越防火墙,需要开启被动模式,否则执行任何 ftp 命令都没有响应,直到出现 “最大执行时间超时” 的致命错误,导致程序终止运行...

解决办法:开启 FTP 被动模式,正确代码如下:<?php
$conn = ftp_connect("ftp.bacysoft.cn") or die("Could not connect");
ftp_login($conn,"test","test1234");
ftp_pasv($conn, true);
ftp_put($conn,"target.rar","local.rar",FTP_BINARY,0);
ftp_close($conn);
echo "done";
?>

类别 :  PHP(78)  |  浏览(5168)  |  评论(0)
发表评论(评论将通过邮件发给作者):

Email: