Échec de PHP ftp_put : analyser le problème et le résoudre
L'incapacité de ftp_put() à fonctionner correctement peut être un problème frustrant lors du transfert fichiers via FTP. En PHP, une cause courante de ce problème réside dans l'utilisation par défaut du mode actif.
Transfert en mode actif ou passif
Le mode actif impose que le serveur FTP se connecte au client sur un port spécifié. En mode passif, le serveur écoute sur un port aléatoire, qui est ensuite fourni au client. Dans la plupart des cas, l'utilisation du mode passif est nécessaire, en particulier lorsque le serveur FTP est derrière un pare-feu ou un NAT.
Résoudre le problème
Pour passer le transfert FTP de PHP en mode passif mode, il faut invoquer la fonction ftp_pasv() :
$connect = ftp_connect($ftp) or die("Unable to connect to host");
ftp_login($connect, $username, $pwd) or die("Authorization failed");
// Switch to passive mode
ftp_pasv($connect, true) or die("Unable switch to passive mode");
Considérations supplémentaires
Dans certains cas, le serveur FTP peut signaler un message incorrect Adresse IP en réponse à la commande PASV. Ce problème peut être résolu en désactivant l'utilisation de l'adresse PASV :
ftp_set_option($connect, FTP_USEPASVADDRESS, false);
Bonnes pratiques
Bien que les solutions ci-dessus puissent atténuer le problème, la solution optimale consiste à configurer le serveur FTP pour qu'il utilise l'adresse IP et la configuration de port correctes. Cela garantit un bon fonctionnement dans tous les scénarios.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3