问答一下,轻松解决,电脑应用解决专家!
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win10/Win11
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascriptLinux系统
PHP教程CSS教程XML教程

php连接ftp时Warning ftp_put() Illegal PORT command

更新时间:2022-01-03 15:37 作者:佚名点击:

1.报错背景

代码如下:

$conn = ftp_connect("45it.com") 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";

端口是默认21的可省略,以上代码连接正常,但上传错误了。其功能是:将本地文件local.rar上传到远程FTP文件服务器上,并保存为target.rar。报错如下:

Warning: ftp_put() [function.ftp-put]: Opening BINARY mode data connection for target.rar.

Fatal error: Maximum execution time of 60 seconds exceeded in

2.错误分析

服务器一般都是放在防火墙后面,因此FTP客户端程序如果需要穿越防火墙,需要开启被动模式,否则执行任何ftp命令都没有响应,直到出现“最大执行时间超时”的致命错误,导致程序终止运行。

3.解决方案

开启FTP被动模式。代码如下:

$conn = ftp_connect(ftp.com) 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";
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
你可能感兴趣的内容