phpftp_put中上传失败的解决方法-创新互联

小编给大家分享一下php ftp_put中上传失败的解决方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

目前成都创新互联公司已为近千家的企业提供了网站建设、域名、网络空间、网站托管、服务器租用、企业网站设计、会泽网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

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

php ftp_put中上传失败的解决方法

客户端在防火墙之后,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";
?>

看完了这篇文章,相信你对php ftp_put中上传失败的解决方法有了一定的了解,想了解更多相关知识,欢迎关注创新互联-成都网站建设公司行业资讯频道,感谢各位的阅读!

分享名称:phpftp_put中上传失败的解决方法-创新互联
当前地址:https://www.cdcxhl.com/article42/csdohc.html

成都网站建设公司_创新互联,为您提供移动网站建设用户体验网站制作外贸建站域名注册手机网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站优化排名