我通过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。
2条答案
按热度按时间unguejic1#
ftp_put
(或其他任何传输命令,如ftp_get
,ftp_nlist
,ftp_rawlist
,ftp_mlsd
)出现问题的最典型原因是PHP默认为主动模式,在99%的情况下,必须切换到被动模式才能使传输工作。ftp_login
之后调用ftp_pasv
。之前调用它无效。*另见:
此外,如果您的FTP服务器在
PASV
命令的响应中报告了不正确的IP地址(如果服务器位于防火墙/NAT之后,这是很常见的),您可能需要使用以下命令来解决此问题:参见PHP FTP + Passive FTP Server Behind NAT。
bnlyeluc2#
这起了作用: