首页  >  文章  >  后端开发  >  如何克服使用 ftp_put 进行 FTP 上传的令人沮丧的失败?

如何克服使用 ftp_put 进行 FTP 上传的令人沮丧的失败?

Barbara Streisand
Barbara Streisand原创
2024-10-24 04:15:30660浏览

How to Overcome the Frustrating Failure of FTP Upload with ftp_put?

FTP 上传失败故障排除:解决 ftp_put 之谜

尽管建立了安全的 FTP 连接,但神秘的 ftp_put 函数仍然没有响应,阻碍了您的 XML 文件已成功传输到远程服务器。让我们深入研究这个令人困惑的问题并找出其难以捉摸的解决方案。

罪魁祸首通常在于 PHP 对主动 FTP 模式的默认偏好。然而,被动模式在绝大多数情况下成为了救世主。要解决这个困境,请调用万能的 ftp_pasv 函数。

<code class="php">$connect = ftp_connect($ftp) or die("Unable to connect to host");
ftp_login($connect, $username, $pwd) or die("Authorization failed");
// Initiate the switch to passive mode
ftp_pasv($connect, true) or die("Unable switch to passive mode");</code>

请记住,ftp_pasv 的调用必须在成功的 ftp_login 调用之后进行。先发制人的尝试将被证明是徒劳的。

当 FTP 服务器响应 PASV 命令返回错误的 IP 地址时,就会出现另一个潜在障碍。不幸的是,这种异常现象在隐藏在防火墙或 NAT 后面的服务器中很普遍。采取以下解决方法可能会缓解此问题:

<code class="php">ftp_set_option($connect, FTP_USEPASVADDRESS, false);</code>

虽然此解决方法提供了暂时的喘息机会,但最终的解决方案在于解决服务器上的根本问题。

请记住这句明智的格言:预防胜于治疗。在这种情况下,确保 FTP 服务器在其 PASV 响应中可靠地报告正确的 IP 地址至关重要。

以上是如何克服使用 ftp_put 进行 FTP 上传的令人沮丧的失败?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn