php ftp报错,php ftp_put 上传失败怎么办

php ftp_put上传失败是因为服务器放在防火墙后面,其解决办法就是开启FTP被动模式,代码如“ftp_put($conn,"target.rar","local.rar",FTP_BINARY,0);”。

4367ac28ffed744b10631ba4cec06fc3.png

客户端在防火墙之后,php利用ftp上传文件时候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() [function.ftp-put]: Opening BINARY mode data connection for target.rar. in E:\wwwroot\bacysoft\wwwroot\test\temp.php on line 4

Fatal error: Maximum execution time of 60 seconds exceeded in E:\wwwroot\bacysoft\wwwroot\test\temp.php on line 5

出错原因:

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

解决办法:开启 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";

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值