php ftp上传,本地测试可以,上传服务器却失败,ftp_put总是返回false

时间:2023年08月15日

/

来源:网络

/

编辑:佚名

为了实现网站程序和图片资源分离,决定在网站上传图片的时候,直接通过ftp的形式上传到图片服务器。经过一番折腾后,终于在本地测试成功。高兴的把代码上传Linux服务器后执行却发现上传到ftp服务器的图片都是0kb,很是烦恼。

经过检查发现在调用ftp_put时总是返回false,说明ftp传输文件时出现了错误。猜测是服务器防火墙的问题,于是用命令systemctl stop firewalld   直接关闭了防火墙,然后测试,文件上传成功。
可是关闭防火墙对服务器总不是那么安全。然后用通过查看php文档对ftp上传相关的描述,发现ftp上传是有主动模式和被动模式区分的。默认是用的主动模式,这时我们只需要使用ftp_pasv函数来开启被动模式即可。这样就不用关闭服务器的防火墙了。
其实问题的所在就是客户端的防火墙没有开放ftp主动模式需要的端口,如果真的需要使用主动模式,将客户端和服务端的相关端口打开也是可以的。
猜你需要

豫ICP备2021026617号-1  豫公网安备:41172602000185   Copyright © 2021-2028 www.78moban.com/ All Rights Reserved

本站作品均来自互联网,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如有侵犯您的版权,请联系 1565229909#qq.com(把#改成@),我们将立即处理。