gpt4 book ai didi

PHP ftp_put 失败

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:55:37 25 4
gpt4 key购买 nike

我通过 FTP 上传 XML 文件:

$ftp = "ftp";
$username = "username";
$pwd = "password";
$filename = $_FILES[$xyz][$abc];
$tmp = $_FILES['file']['tmp_name'];
$destination = "/Content/EnquiryXML ";

$connect = ftp_connect($ftp)or die("Unable to connect to host");
ftp_login($connect,$username,$pwd)or die("Authorization Failed");
echo "Connected!<br/>";

if(!$filename)
{
echo"Please select a file";
}

else
{
ftp_put($connect,$destination.'/'.$filename,$tmp,FTP_ASCII)or die("Unable to upload");
echo"File successfully uploaded to FTP";
}

我想将使用 DOMDocument 创建的 XML 文件发送到 FTP 服务器,但我做不到。

ftp_put 返回 false。

最佳答案

ftp_put(或任何其他传输命令,如 ftp_getftp_nlistftp_rawlist)出现问题的最典型原因, ftp_mlsd) 是PHP默认为主动模式。在 99% 的情况下,必须切换到被动模式,才能使传输正常进行。使用 ftp_pasv function .

$connect = ftp_connect($ftp) or die("Unable to connect to host");
ftp_login($connect, $username, $pwd) or die("Authorization failed");
// turn passive mode on
ftp_pasv($connect, true) or die("Unable switch to passive mode");

ftp_pasv 必须在 ftp_login 之后调用。之前调用没有效果。

另见:


此外,如果您的 FTP 服务器在对 PASV 命令的响应中报告错误的 IP 地址(这种情况很常见,如果服务器位于防火墙/NAT 后面),您可能需要解决方法它通过使用:

ftp_set_option($connect, FTP_USEPASVADDRESS, false);

参见 PHP FTP + Passive FTP Server Behind NAT .

虽然在这种情况下正确的解决方案是修复服务器。

关于PHP ftp_put 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40720260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com