使用 PHP ftp_put 排查 FTP 上传失败
问题:
尝试上传文件时使用 ftp_put 将 XML 文件传输到 FTP 服务器,操作始终失败并返回 false。
解决方法:
切换到被动 FTP 模式:
ftp_put 失败的最常见原因是 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"); ftp_pasv($connect, true) or die("Unable switch to passive mode");</code>
配置 PASV 寻址:
如果由于防火墙或 NAT,您的 FTP 服务器在响应 PASV 命令时报告了不正确的 IP 地址使用情况下,您可以通过禁用 FTP_USEPASVADDRESS 来解决该问题:
<code class="php">ftp_set_option($connect, FTP_USEPASVADDRESS, false);</code>
其他资源:
注意:
需要注意的是,ftp_pasv 必须在 ftp_login 之后调用才能生效。
以上是如何使用 PHP ftp_put 解决 FTP 上传失败的问题?的详细内容。更多信息请关注PHP中文网其他相关文章!