45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 设计学院 > 网络编程 > PHP教程 >

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

电脑软硬件应用网 45IT.COM 时间:2012-06-12 18:02 作者:佚名

问题代码如下:
01.<?php

02.$conn = ftp_connect("45its.com") or die("Could not connect");

03.ftp_login($conn,"test","test1234");

04.ftp_put($conn,"target.rar","local.rar",FTP_BINARY,0);

05.ftp_close($conn);

06.echo "done";

07.?>
说明:
本代码通过PHP服务器在后台使用 FTP 协议将本地文件 “local.rar” 上传到远程 FTP 文件服务器上,并保存为 “target.rar”。即 PHP 服务器作为 FTP Client 上传文件到 FTP Server...

以上代码运行后出错,错误提示如下:
01.Warning: ftp_put() [function.ftp-put]: Opening BINARY mode data connection for target.rar. in E:\wwwroot\bacysoft\wwwroot\test\temp.php on line 4

02.

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

解决办法:开启 FTP 被动模式,正确代码如下:
01.<?php

02.$conn = ftp_connect(45its.com) or die("Could not connect");

03.ftp_login($conn,"test","test1234");

04.ftp_pasv($conn, true);

05.ftp_put($conn,"target.rar","local.rar",FTP_BINARY,0);

06.ftp_close($conn);

07.echo "done";

08.?>

顶一下
(4)
100%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识