L'opération ftp_put de PHP a échoué
P粉884548619
2023-08-24 22:05:13
<p>Je télécharge le fichier XML via FTP : </p>
<pre class="brush:php;toolbar:false;">$ftp = "ftp";
$nom d'utilisateur = "nom d'utilisateur" ;
$pwd = "Mot de passe" ;
$nom de fichier = $_FILES[$xyz][$abc];
$tmp = $_FILES['fichier']['tmp_name'];
$destination = "/Content/EnquiryXML ";
$connect = ftp_connect($ftp)or die("Impossible de se connecter à l'hôte");
ftp_login($connect,$username,$pwd)or die("Échec de l'autorisation");
echo "Connecté !<br/>" ;
si(!$nom de fichier)
{
echo "Veuillez sélectionner un fichier" ;
}
autre
{
ftp_put($connect,$destination.'/'.$filename,$tmp,FTP_ASCII)or die("Impossible de télécharger");
echo "Fichier téléchargé avec succès sur FTP" ;
}</pré>
<p>Je souhaite envoyer un fichier XML créé à l'aide de <code>DOMDocument</code> à un serveur FTP, mais je n'y parviens pas. </p>
<p><code>ftp_put</code> renvoie false. </p>
Cela a fonctionné :
mène à
Appelé aprèsftp_put
(或任何其他传输命令,如ftp_get
、ftp_nlist
、ftp_rawlist
、ftp_mlsd
)出现问题的最常见原因是PHP默认为主动模式。在99%的情况下,需要切换到被动模式才能使传输正常工作。使用ftp_pasv
fonction .ftp_pasv
必须在ftp_login
. L'appeler avant n'a aucun effet.Voir aussi :
De plus, si votre serveur FTP signale une mauvaise adresse IP en répondant aux commandes
PASV
(ce qui est assez courant si le serveur est derrière un pare-feu/NAT), vous devrez peut-être la résoudre en utilisant :Voir PHP FTP + Serveur FTP passif derrière NAT.
Bien que dans ce cas, la bonne solution soit de réparer le serveur.